forked from KungPaoChicken/android-runner
-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
145 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Android Plugin | ||
This plugin collects memory and CPU usage via the `cpuinfo` and `meminfo` Android utilities. | ||
|
||
## Configuration | ||
Below, an example configuration can be found. | ||
```json | ||
"profilers": { | ||
"android": { | ||
"sample_interval": 100, | ||
"data_points": ["cpu", "mem"], | ||
"subject_aggregation": "user_subject_aggregation.py", | ||
"experiment_aggregation": "user_experiment_aggregation.py" | ||
} | ||
} | ||
``` | ||
|
||
**sample_interval** *int* | ||
The sample interval in which the ADB commands are executed and the data points are gathered. | ||
|
||
**data_points** *Array<string>* | ||
The types of data that should be measured defined in an array of string enums. Possible options are: | ||
- `cpu` - collects the CPU usage as a percentage of the device's total CPU capacity at a given point in time. | ||
- `mem` - collects the memory usage in KB at a given point in time. | ||
|
||
**subject_aggregation** *string* | ||
TODO: default subject aggregation | ||
|
||
**experiment_aggregation** *string* | ||
TODO: default experiment aggregation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Batterystats Plugin | ||
This plugin uses the `batterystats` utility and estimates energy consumption via the algorithm proposed in [this article](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7884613&casa_token=oEEnY7XOip8AAAAA:AyRZxwboUh55-n9vmW5NGT62mL_hv85T4wPGWlDQGJ36VpF3bcAV1ufvYBhsYxlB0lIMOYJ_Hc-O&tag=1). | ||
|
||
## Configuration | ||
Below, an example configuration can be found. | ||
```json | ||
"profilers": { | ||
"batterystats": { | ||
"cleanup": true, | ||
"subject_aggregation": "default", | ||
"experiment_aggregation": "default", | ||
"enable_systrace_parsing": true, | ||
"python2_path": "python2" | ||
} | ||
} | ||
``` | ||
|
||
**enable_systrace_parsing** *boolean* | ||
The Batterystats profiler uses the profiling tool Systrace internally to measure CPU specific activity and energy consumption on the mobile device. For some devices the parsing of the output of Systrace fails, causing the experiment run to fail. You can safely disable the Systrace parsing when you encounter Systrace parsing errors given that your experiment does not need rely on CPU specific information, but rather on the overall energy consumption of the mobile device. The overall energy consumption is not affected by the Systrace logs since it is tracked using another tool. The default is *true*. | ||
|
||
**python2_path** *string* | ||
The path to python 2 that is used to launch Systrace. The default is *python2*. | ||
|
||
**subject_aggregation** *string* | ||
TODO: default subject aggregation | ||
|
||
**experiment_aggregation** *string* | ||
TODO: default experiment aggregation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Frametimes Plugin | ||
The frame times plugin gathers unique frame rendering durations (in nanoseconds) by utilizing `dumpsys gfxinfo framestats` and counts the amount of delayed frames that occurred following the 16ms threshold [defined by Google](https://developer.android.com/training/testing/performance). | ||
|
||
## Configuration | ||
Below an example of the configuration options is found: | ||
```json | ||
"profilers": { | ||
"Frametimes": { | ||
"subject_aggregation" : "default", | ||
"sample_interval": 1000 | ||
} | ||
} | ||
``` | ||
|
||
**sample_interval** *int* | ||
The sample interval is configurable but advised to keep under 120 seconds as the framestats command returns only data from frames rendered in the past 120 seconds as described [here](https://developer.android.com/training/testing/performance). | ||
Shorter sample intervals will not cause duplication in the frames gathered as only unique frames are kept. | ||
|
||
**subject_aggregation** *string* | ||
The default subject aggregation consists of combining both the frametimes as the delayed frames count in single files for easy further processing. | ||
|
||
**experiment_aggregation** *string* | ||
This plugin contains no default experiment aggregation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Garbage Collection Plugin | ||
The garbage collection (GC) plugin gathers and counts GC log statements by searching in adb's logcat for logs that meet the format of a GC call as described [here](https://dzone.com/articles/understanding-android-gc-logs). | ||
|
||
## Configuration | ||
Below an example configuration is found: | ||
```json | ||
"profilers": { | ||
"Garbagecollection": { | ||
"subject_aggregation" : "default" | ||
} | ||
} | ||
``` | ||
|
||
**subject_aggregation** *string* | ||
The default configuration for this plugin is the subject aggregation which lists the counted GC calls in a single file for easy further processing. | ||
|
||
**experiment_aggregation** *string* | ||
This plugin contains no default experiment aggregation. |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Trepn Plugin | ||
This plugin collects data via the Trepn profiler, e.g., power consumption, battery temperature, CPUs frequency. | ||
The plugin depends on the [Trepn Android app](./com.quicinc.trepn.apk) being installed on the device. | ||
|
||
## Configuration | ||
Below an example configuration is found: | ||
```json | ||
"profilers": { | ||
"trepn": { | ||
"sample_interval": 100, | ||
"data_points": ["battery_power", "mem_usage"] | ||
} | ||
} | ||
``` | ||
|
||
**sample_interval** *int* | ||
The sample interval in which the data points are gathered. | ||
|
||
**data_points** *Array<string>* | ||
The types of data that should be measured defined in an array of string enums. Possible options are listed in [data_points.json](./data_points.json). | ||
|
||
**subject_aggregation** *string* | ||
TODO: default subject aggregation | ||
|
||
**experiment_aggregation** *string* | ||
TODO: default experiment aggregation |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.