Skip to content

Commit

Permalink
Expanded on the configuration options of each plugin and improved con…
Browse files Browse the repository at this point in the history
…sistency
  • Loading branch information
Maikerupitazu committed Jul 22, 2020
1 parent 9dbcda1 commit fe43b20
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,17 @@ Below, an example configuration can be found.
}
}
```

**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
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,10 @@ Below, an example configuration can be found.
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*.
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
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ Below an example of the configuration options is found:
}
```

**sample_interval** *boolean*
**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.
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.
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,7 @@ Below an example configuration is found:
```

**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.
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.
26 changes: 26 additions & 0 deletions AndroidRunner/Plugins/trepn/README.md
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
13 changes: 0 additions & 13 deletions AndroidRunner/Plugins/trepn/README_Trepn.md

This file was deleted.

File renamed without changes.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,14 @@ A JSON object to describe the profiler plugins to be used and their arguments. B
```
Out of the box, AR contains the plugins listed below which can immediately be used as a profiler for an experiment.

| Name (quality) | Description |
|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [batterystats](./AndroidRunner/Plugins/batterystats/README_Batterystats.md) (Energy) | 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). |
| [monsoon](./AndroidRunner/Plugins/monsoon/README_Monsoon.md) (Energy) | Collects energy consumption via the Monsoon hard-ware profiler and the [Physalia tool](https://github.com/TQRG/physalia). |
| [trepn](./AndroidRunner/Plugins/trepn/README_Trepn.md) (mixed) | Collects data via the Trepn profiler, e.g., power consumption, battery temperature, CPUs frequency. |
| [mem-CPU](./AndroidRunner/Plugins/android/README_Android.md) (Performance) | Collects memory and CPU usage via the `cpuinfo` and `meminfo` Android utilities. |
| [frametimes](./AndroidRunner/Plugins/frametimes/README_Frametimes.md) (Performance) | Collects frame rendering durations and the number of delayed frames with the technique used in [this article](https://dl.acm.org/doi/pdf/10.1145/2897073.2897100?casa_token=jD3bYLV001kAAAAA:OZiAzZFwtvSO-uK3hgWlz6iNVcTt6uYoT1UWroDEGhDHrEBvLbsIl4E13RhAtRK4IaEPd6putLTzzZw). |
| [gc](./AndroidRunner/Plugins/trepn/README_Trepn.md) (Performance) | Collects the number of garbage collections as in [this article](https://dl.acm.org/doi/pdf/10.1145/2897073.2897100?casa_token=jD3bYLV001kAAAAA:OZiAzZFwtvSO-uK3hgWlz6iNVcTt6uYoT1UWroDEGhDHrEBvLbsIl4E13RhAtRK4IaEPd6putLTzzZw). |
| Name (quality attribute) | Description |
|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [batterystats](./AndroidRunner/Plugins/batterystats/README.md) (Energy) | 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). |
| [monsoon](./AndroidRunner/Plugins/monsoon/README.md) (Energy) | Collects energy consumption via the Monsoon hard-ware profiler and the [Physalia tool](https://github.com/TQRG/physalia). |
| [trepn](./AndroidRunner/Plugins/trepn/README.md) (mixed) | Collects data via the Trepn profiler, e.g., power consumption, battery temperature, CPUs frequency. |
| [mem-CPU](./AndroidRunner/Plugins/android/README.md) (Performance) | Collects memory and CPU usage via the `cpuinfo` and `meminfo` Android utilities found in ADB's [dumpsys](https://developer.android.com/studio/command-line/dumpsys). |
| [frametimes](./AndroidRunner/Plugins/frametimes/README.md) (Performance) | Collects frame rendering durations and the number of delayed frames with the technique used in [this article](https://dl.acm.org/doi/pdf/10.1145/2897073.2897100?casa_token=jD3bYLV001kAAAAA:OZiAzZFwtvSO-uK3hgWlz6iNVcTt6uYoT1UWroDEGhDHrEBvLbsIl4E13RhAtRK4IaEPd6putLTzzZw). |
| [gc](./AndroidRunner/Plugins/trepn/README.md) (Performance) | Collects the number of garbage collections as in [this article](https://dl.acm.org/doi/pdf/10.1145/2897073.2897100?casa_token=jD3bYLV001kAAAAA:OZiAzZFwtvSO-uK3hgWlz6iNVcTt6uYoT1UWroDEGhDHrEBvLbsIl4E13RhAtRK4IaEPd6putLTzzZw). |

**subject_aggregation** *string*
Specify which subject aggregation to use. The default is the subject aggregation provided by the profiler. If a user specified aggregation script is used then the script should contain a ```bash main(dummy, data_dir)``` method, as this method is used as the entry point to the script.
Expand Down

0 comments on commit fe43b20

Please sign in to comment.