Настройте поведение Microbenchmark с помощью следующих аргументов инструментирования. Вы можете добавить их в конфигурацию Gradle или применить непосредственно при запуске инструментирования из командной строки. Чтобы установить эти аргументы для всех запусков тестов в Android Studio и командной строке, добавьте их в testInstrumentationRunnerArguments :
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Вы также можете задать параметры инструментирования при запуске бенчмарков из Android Studio. Чтобы изменить параметры, выполните следующие действия:
- Чтобы изменить параметры запуска, нажмите кнопку «Редактировать» и выберите нужный параметр.

Рисунок 1. Редактирование конфигурации запуска. - Отредактируйте параметры инструментирования, нажав кнопку рядом с полем «Параметры инструментирования» .

Рисунок 2. Отредактируйте аргумент инструментирования. - Нажмите и добавьте необходимый аргумент инструментирования.

Рисунок 3. Добавьте аргумент инструментирования.
Если вы запускаете бенчмарк из командной строки, используйте -P android.testInstrumentationRunnerArguments.[name of the argument] :
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling Если вы вызываете команду am instrument напрямую (что может иметь место в средах непрерывной интеграции), передайте аргумент команде am instrument с помощью -e :
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunnerДля получения дополнительной информации о настройке бенчмарков в CI см. раздел «Бенчмаркинг в CI».
androidx.benchmark.cpuEventCounter.enable (экспериментальная функция)
Подсчитывает количество событий ЦП, указанных в файле androidx.benchmark.cpuEventCounter.events . Требуется root-доступ.
- Тип аргумента: логическое значение
- По умолчанию: false
androidx.benchmark.cpuEventCounter.events (экспериментальный)
Указывает, какие типы событий ЦП следует учитывать. Для использования этого аргумента необходимо установить значение androidx.benchmark.cpuEventCounter.enable равным true .
- Тип аргумента: список строк, разделенных запятыми.
- Доступные варианты:
-
Instructions -
CPUCycles -
L1DReferences -
L1DMisses -
BranchInstructions -
BranchMisses -
L1IReferences -
L1IMisses
-
- По умолчанию используются следующие значения:
Instructions,CpuCycles,BranchMisses
androidx.benchmark.dryRunMode.enable
Позволяет запускать тесты производительности в одном цикле для проверки их корректной работы.
Это означает:
- Ошибки конфигурации не проверяются (например, для упрощения запуска с обычными проверками корректности на эмуляторах).
- Тест производительности выполняется только в одном цикле, без предварительного прогрева.
- Измерения и трассировки не фиксируются для сокращения времени выполнения.
Это оптимизирует пропускную способность тестирования и проверку логики бенчмарков, а не корректность сборки и измерений.
- Тип аргумента: логическое значение
- По умолчанию:
false
androidx.benchmark.iterations
Задает количество выполняемых измерений. Это не определяет напрямую количество циклов, поскольку каждое измерение обычно включает множество циклов, определяемых динамически в зависимости от времени выполнения во время прогрева.
- Тип аргумента: целое число
- Значение по умолчанию:
50
androidx.benchmark.killExistingPerfettoRecordings
По умолчанию Microbenchmark при запуске новой трассировки завершает все существующие записи Perfetto (System Trace), чтобы уменьшить помехи. Чтобы отключить это поведение, передайте значение false .
- Тип аргумента: логическое значение
- По умолчанию:
true
androidx.benchmark.output.enable
Позволяет записывать результирующий JSON-файл на внешнее хранилище.
- Тип аргумента: логическое значение
- По умолчанию:
true
androidx.benchmark.profiling.mode
Позволяет создавать файлы трассировки во время выполнения тестов производительности. См. раздел «Профилирование микротеста» для получения информации о доступных параметрах.
Обратите внимание, что некоторые версии ОС Android не поддерживают трассировку методов без влияния на последующие измерения. Microbenchmark генерирует исключение, чтобы предотвратить это, поэтому используйте аргумент по умолчанию для захвата трассировки методов только тогда, когда это безопасно. См. проблему #316174880 .
- Тип аргумента: строка
- Доступные варианты:
-
MethodTracing -
StackSampling -
None
-
- По умолчанию используется безопасная версия
MethodTracing, которая записывает трассировку метода только в том случае, если устройство может это сделать без влияния на измерения.
androidx.benchmark.suppressErrors
Принимает список ошибок, разделенных запятыми, для преобразования в предупреждения.
- Тип аргумента: список строк
- Доступные варианты:
-
DEBUGGABLE -
LOW-BATTERY -
EMULATOR -
CODE-COVERAGE -
UNLOCKED -
SIMPLEPERF -
ACTIVITY-MISSING
-
- По умолчанию: пустой список
additionalTestOutputDir
Настраивает место сохранения отчетов о результатах бенчмарка в формате JSON и результатов профилирования на устройстве.
- Тип аргумента: строка пути к файлу
- По умолчанию используется: внешний каталог тестового APK-файла.
слушатель
Результаты бенчмарка могут быть непоследовательными, если во время его выполнения выполняются несвязанные фоновые задачи.
Чтобы отключить фоновую работу во время бенчмаркинга, установите тип аргумента инструментирования listener на androidx.benchmark.junit4.SideEffectRunListener .
- Тип аргумента: строка
- Доступные варианты:
-
androidx.benchmark.junit4.SideEffectRunListener
-
- Значение по умолчанию: не указано
Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Аргументы инструментирования Macrobenchmark
- Профилирование микробенчмарка
- Создание базовых профилей {:#creating-profile-rules}