blob: e2cc7e6ebf2cd0314606fecbd039a4da5253dc54 [file] [log] [blame] [view]
# Introduction
A Gradle Plugin to build and generate benchmarking results for KMP iOS benchmarks.
* Generates Skia Dashboard compatible results.
* Automatically generates the XCode project, and runs benchmarks on a target device running iOS
or macOS (simulator or physical devices).
# Usage
A KMP project needs to do something like:
```groovy
plugins {
id("androidx.benchmark.darwin")
}
```
and then it can use the `darwinBenchmark` block like so:
```groovy
darwinBenchmark {
// XCodegen Schema YAML
xcodeGenConfigFile = project.rootProject.file(
"benchmark/benchmark-darwin-samples-xcode/xcodegen-project.yml"
)
// XCode project name
xcodeProjectName = "benchmark-darwin-samples-xcode"
// iOS app scheme
scheme = "testapp-ios"
// Destination
destination = "platform=iOS Simulator,name=iPhone 13,OS=15.2"
// Or a target device id
destination = "id=7F61C467-4E4A-437C-B6EF-026FEEF3904C"
// The XCFrameworkConfig name
xcFrameworkConfig = "AndroidXDarwinSampleBenchmarks"
}
```
Example metrics look like:
```json
{
"key": {
"testDescription": "Allocate an ArrayList of size 1000",
"metricName": "Memory Peak Physical",
"metricIdentifier": "com.apple.dt.XCTMetric_Memory.physical_peak",
"polarity": "prefers smaller",
"units": "kB"
},
"measurements": {
"stat": [
{
"value": "min",
"measurement": 0.0
},
{
"value": "median",
"measurement": 0.0
},
{
"value": "max",
"measurement": 0.0
},
{
"value": "stddev",
"measurement": 0.0
}
]
}
}
```