Konfigurasi perilaku Microbenchmark dengan argumen instrumentasi
berikut. Anda dapat menambahkannya ke konfigurasi Gradle atau menerapkannya
langsung saat menjalankan instrumentasi dari command line. Untuk menetapkan
argumen ini bagi semua pengujian Android Studio dan command line yang berjalan, tambahkan argumen tersebut ke
testInstrumentationRunnerArguments:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Anda juga dapat menyiapkan argumen instrumentasi saat menjalankan tolok ukur dari Android Studio. Untuk mengubah argumen, lakukan hal berikut:
- Edit konfigurasi run dengan mengklik Edit dan memilih
konfigurasi yang ingin Anda edit.
Gambar 1. Edit konfigurasi run - Edit argumen instrumentasi dengan mengklik
di samping kolom Instrumentation
arguments.
Gambar 2. Edit argumen instrumentasi. - Klik dan tambahkan argumen
instrumentasi yang diperlukan.
Gambar 3. Tambahkan argumen instrumentasi.
Jika Anda menjalankan benchmark dari command line, gunakan -P
android.testInstrumentationRunnerArguments.[name of the argument]:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSamplingJika Anda memanggil perintah instrumentasi am secara langsung (yang mungkin terjadi di lingkungan pengujian CI), teruskan argumen ke am instrument dengan -e:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunnerUntuk mengetahui informasi selengkapnya tentang mengonfigurasi benchmark dalam CI, lihat Benchmark dalam CI
androidx.benchmark.cpuEventCounter.enable (eksperimental)
Menghitung peristiwa CPU yang ditentukan dalam androidx.benchmark.cupEventCounter.events.
Memerlukan akses root.
- Jenis argumen: boolean
- Default: salah (false)
androidx.benchmark.cpuEventCounter.events (eksperimental)
Menentukan jenis peristiwa CPU yang akan dihitung. Untuk menggunakan argumen ini,
androidx.benchmark.cpuEventCounter.enable harus ditetapkan ke true.
- Jenis argumen: daftar string yang dipisahkan koma
- Opsi yang tersedia:
InstructionsCPUCyclesL1DReferencesL1DMissesBranchInstructionsBranchMissesL1IReferencesL1IMisses
- Default:
Instructions,CpuCycles,BranchMisses
androidx.benchmark.dryRunMode.enable
Memungkinkan Anda menjalankan benchmark dalam satu loop untuk memastikan bahwa benchmark berfungsi dengan benar.
Ini artinya:
- Error konfigurasi tidak diterapkan (misalnya, untuk mempermudah menjalankan pengujian kebenaran reguler di emulator)
- Benchmark hanya menjalankan satu loop, tanpa pemanasan
- Pengukuran dan rekaman aktivitas tidak diambil untuk mengurangi runtime
Hal ini mengoptimalkan throughput pengujian dan memvalidasi logika benchmark melalui build dan kebenaran pengukuran.
- Jenis argumen: boolean
- Default:
false
androidx.benchmark.killExistingPerfettoRecordings
Secara default, tolok ukur akan menghentikan rekaman Perfetto (Rekaman Aktivitas Sistem) yang ada saat memulai rekaman aktivitas baru untuk mengurangi gangguan. Untuk menonaktifkan perilaku ini, teruskan
false.
- Jenis argumen: boolean
- Default:
true
androidx.benchmark.output.enable
Mengaktifkan penulisan file JSON hasil ke penyimpanan eksternal.
- Jenis argumen: boolean
- Default:
true
androidx.benchmark.profiling.mode
Memungkinkan pengambilan file rekaman aktivitas saat menjalankan benchmark. Lihat opsi yang tersedia di Membuat Profil Microbenchmark.
Perhatikan bahwa beberapa versi OS Android tidak mendukung pelacakan metode tanpa pengukuran berikutnya terpengaruh. Microbenchmark akan memunculkan pengecualian untuk mencegah hal ini, jadi gunakan argumen default untuk merekam rekaman aktivitas metode hanya jika aman untuk melakukannya. Lihat Masalah #316174880.
- Jenis argumen: string
- Opsi yang tersedia:
MethodTracingStackSamplingNone
- Default ke: Versi aman
MethodTracingyang hanya merekam rekaman aktivitas metode jika perangkat dapat melakukannya tanpa memengaruhi pengukuran.
androidx.benchmark.suppressErrors
Menerima daftar error yang dipisahkan koma agar diubah menjadi peringatan.
- Jenis argumen: daftar string
- Opsi yang tersedia:
DEBUGGABLELOW-BATTERYEMULATORCODE-COVERAGEUNLOCKEDSIMPLEPERFACTIVITY-MISSING
- Default: daftar kosong
additionalTestOutputDir
Mengonfigurasi tempat laporan benchmark JSON dan hasil profiling akan disimpan di perangkat.
- Jenis argumen: string jalur file
- Default: direktori eksternal APK pengujian
pendengar
Anda mungkin mendapatkan hasil benchmark yang tidak konsisten jika pekerjaan latar belakang yang tidak terkait dijalankan saat benchmark berjalan.
Untuk menonaktifkan pekerjaan latar belakang selama benchmark, tetapkan
jenis argumen instrumentasi listener ke
androidx.benchmark.junit4.SideEffectRunListener.
- Jenis argumen: string
- Opsi yang tersedia:
androidx.benchmark.junit4.SideEffectRunListener
- Default: Tidak ditentukan
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Argumen Instrumentasi Macrobenchmark
- Membuat Profil Microbenchmark
- Membuat Profil Dasar Pengukuran {:#creating-profile-rules}