Mengonfigurasi 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.
- Edit argumen instrumentasi dengan mengklik di samping kolom Instrumentation arguments.
- Klik dan tambahkan argumen instrumentasi yang diperlukan.
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=StackSampling
Jika Anda memanggil perintah instrumen 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.AndroidBenchmarkRunner
Untuk informasi selengkapnya tentang cara mengonfigurasi benchmark di CI, lihat Benchmark dalam CI
additionalTestOutputDir
Mengonfigurasi tempat laporan benchmark JSON dan hasil profiling akan disimpan di perangkat.
- Jenis argumen: string jalur file
- Default: direktori eksternal APK pengujian
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 memudahkan pengujian kebenaran reguler pada 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 berdasarkan akurasi build dan pengukuran.
- Jenis argumen: boolean
- Default:
false
androidx.benchmark.iterations
Mengganti jumlah iterasi target berdasarkan waktu untuk memastikan jumlah pekerjaan yang konsisten. Hal ini biasanya hanya berguna dengan mengaktifkan pembuatan profil untuk membantu memastikan kuantitas pekerjaan yang konsisten dilakukan dalam rekaman aktivitas pembuatan profil saat membandingkan berbagai implementasi atau eksekusi. Dalam skenario lain, hal ini mungkin mengurangi akurasi atau stabilitas pengukuran.
- Jenis argumen: integer
- Default: Tidak ditentukan
androidx.benchmark.junit4.SideEffectRunListener
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
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.
- Jenis argumen: string
- Opsi yang tersedia:
MethodTracing
StackSampling
None
- Default:
None
androidx.benchmark.suppressErrors
Menerima daftar error yang dipisahkan koma agar diubah menjadi peringatan.
- Jenis argumen: daftar string
- Opsi yang tersedia:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Default: daftar kosong
androidx.benchmark.startupMode.enable (Tidak digunakan lagi)
Mengonfigurasi ulang perilaku loop untuk mendukung kode benchmark selama startup. Benchmark dijalankan tanpa melakukan loop warmup untuk 10 pengukuran. Untuk meminimalkan overhead di microbenchmark, rata-rata loop dinonaktifkan.
- Jenis argumen: boolean
- Default:
false
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Argumen Instrumentasi Macrobenchmark
- Membuat Profil Microbenchmark
- Membuat Profil Dasar Pengukuran {:#creating-profile-rules}