Mengonfigurasi perilaku library 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, lalu mengklik konfigurasi.
- Edit argumen instrumentasi dengan mengklik Lainnya oleh Instrumentation arguments.
- Tambahkan argumen instrumentasi yang diperlukan dengan mengklik Add di bagian Instrumentation Extra Params.
Jika Anda menjalankan macrobenchmark dari command line, gunakan -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
Jika Anda memanggil perintah am instrument
secara langsung (yang mungkin terjadi
di lingkungan pengujian CI), teruskan argumen ke am instrument
dengan -e
:
adb shell am instrument -e androidx.benchmark.enabledRules BaselineProfile -w com.example.macrobenchmark/androidx.test.runner.AndroidJUnitRunner
Untuk informasi selengkapnya tentang cara mengonfigurasi benchmark di CI, lihat Benchmark dalam CI
androidx.benchmark.compilation.enabled
Memungkinkan Anda menonaktifkan kompilasi di antara setiap iterasi benchmark. Secara
default, aplikasi target diinstal ulang dan dikompilasi ulang di antara setiap
benchmark, agar sesuai dengan CompilationMode
yang diteruskan ke
measureRepeated
. Menonaktifkan ini memungkinkan Anda melewati
penginstalan ulang dan kompilasi jika, misalnya, Anda ingin mengompilasi aplikasi target
sepenuhnya satu kali sebelum menjalankan rangkaian pengujian, dan menjalankan semua tolok ukur terhadap target yang
dikompilasi sepenuhnya.
- Jenis argumen: boolean
- Default:
true
androidx.benchmark.dryRunMode.enable
Memungkinkan Anda menjalankan benchmark dalam satu loop untuk memverifikasi apakah benchmark berfungsi dengan benar atau tidak. Anda dapat menggunakannya dengan pengujian reguler sebagai bagian dari verifikasi.
- Jenis argumen: boolean
- Default:
false
androidx.benchmark.enabledRules
Memungkinkan pemfilteran berjalan hanya ke satu jenis pengujian pembuatan Profil Dasar Pengukuran atau pengujian Macrobenchmark. Daftar yang dipisahkan koma juga didukung.
- Jenis argumen: string
- Opsi yang tersedia:
Macrobenchmark
BaselineProfile
- 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.fullTracing.enable
Mengaktifkan tracepoint androidx.tracing.perfetto
seperti pelacakan komposisi Jetpack Compose.
Anda perlu menyiapkan project agar dapat merekam aktivitas komposisi dari benchmark. Untuk mengetahui informasi selengkapnya, lihat Merekam aktivitas dengan Jetpack Macrobenchmark.
- Jenis argumen: boolean
- Default:
false
androidx.benchmark.profiling.mode
Memungkinkan pengambilan file rekaman aktivitas saat menjalankan benchmark. Opsi yang tersedia sama dengan opsi untuk library Microbenchmark—untuk informasi selengkapnya, lihat deskripsi di Membuat Profil Microbenchmark.
- Jenis argumen: string
- Opsi yang tersedia:
MethodTracing
StackSampling
None
- Default:
None
androidx.benchmark.startupProfiles.enable
Memungkinkan Anda menonaktifkan pembuatan profil startup selama benchmark.
- Jenis argumen: boolean
- Default:
true
androidx.benchmark.suppressErrors
Menerima daftar error yang dipisahkan koma untuk diubah menjadi peringatan.
- Jenis argumen: daftar string
Opsi yang tersedia:
DEBUGGABLE
Error
DEBUGGABLE
menunjukkan bahwa paket target berjalan dengandebuggable=true
dalam manifesnya, sehingga secara drastis mengurangi performa runtime untuk mendukung fitur proses debug. Untuk menghindari error ini, jalankan benchmark dengandebuggable=false
. Argumen yang dapat di-debug memengaruhi kecepatan eksekusi dengan cara yang berarti peningkatan benchmark mungkin tidak membawa ke pengalaman pengguna sebenarnya atau mungkin mengalami penurunan performa rilis.LOW-BATTERY
Jika daya baterai rendah, perangkat sering kali mengurangi performa untuk menghemat sisa baterai, misalnya dengan menonaktifkan core besar. Hal ini akan terjadi meskipun perangkat dicolokkan. Hanya sembunyikan error ini jika Anda sengaja membuat profil aplikasi dengan performa yang lebih rendah.
EMULATOR
Error
EMULATOR
memberi tahu Anda bahwa benchmark sedang berjalan di emulator, yang tidak mewakili perangkat pengguna sungguhan. Peningkatan benchmark emulator mungkin tidak berguna bagi pengalaman pengguna yang sebenarnya atau mungkin mengalami regresi performa perangkat yang sebenarnya. Sebagai gantinya, Anda harus menggunakan perangkat fisik untuk membuat tolok ukur. Sembunyikan error ini dengan sangat hati-hati.NOT-PROFILEABLE
Paket target
$packageName
berjalan tanpa<profileable shell=true>
. Profileable diperlukan di Android 10 dan 11 agar Macrobenchmark merekam informasi rekaman aktivitas yang mendetail dari proses target, seperti bagian pelacakan sistem yang ditentukan dalam aplikasi atau library. Sembunyikan error ini dengan sangat hati-hati.METHOD-TRACING-ENABLED
Proses Macrobenchmark untuk aplikasi yang sedang diukur mengak'tifkan pelacakan metode. Hal ini menyebabkan VM berjalan lebih lambat dari biasanya. Jadi, hanya pertimbangkan metrik dari file rekaman aktivitas dalam istilah relatif—misalnya, membandingkan seberapa cepat proses pertama dengan proses kedua. Menyembunyikan error ini dapat memberikan hasil yang tidak akurat jika Anda membandingkan benchmark untuk membangun dengan opsi pelacakan metode yang berbeda.
Default: daftar kosong
additionalTestOutputDir
Mengonfigurasi tempat laporan benchmark JSON dan hasil profiling akan disimpan di perangkat.
- Jenis argumen: string jalur
- Default: direktori eksternal APK pengujian
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Argumen Instrumentasi Microbenchmark
- Membuat Profil Dasar Pengukuran
- Library JankStats