Configure o comportamento da Microbenchmark com os seguintes argumentos
de instrumentação. Os argumentos podem ser adicionados à configuração do Gradle ou aplicados
diretamente ao executar a instrumentação na linha de comando. Para definir esses
argumentos para todas as execuções de teste de linha de comando e do Android Studio, adicione-os a
testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Também é possível configurar argumentos de instrumentação ao executar as comparações no Android Studio. Para mudar os argumentos, siga estas etapas:
- Edite a configuração de execução clicando em Edit e selecionando a configuração que você quer editar.
- Edite os argumentos de instrumentação clicando em ao lado do campo Instrumentation arguments.
- Clique em e adicione o argumento de instrumentação necessário.
Se você estiver executando o comparativo de mercado na linha de comando, use -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
Se você estiver invocando um comando de instrumento diretamente (o que pode ser o caso em ambientes de teste
de CI), transmita o argumento para am instrument
com -e
:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
Para mais informações sobre como configurar comparativos de mercado na CI, consulte Comparativo de mercado na CI.
additionalTestOutputDir
Configura o local onde os relatórios de comparação JSON e os resultados de criação de perfil são salvos no dispositivo.
- Tipo de argumento: string do caminho do arquivo
- Padrão: testar o diretório externo do APK
androidx.benchmark.dryRunMode.enable
Permite que você execute comparativos de mercado em um único loop para verificar se eles funcionam corretamente.
Isso significa que:
- Os erros de configuração não são aplicados (por exemplo, para facilitar a execução com testes de correção regulares em emuladores).
- A comparação executa apenas um único loop, sem aquecimento
- As medições e os rastros não são capturados para reduzir o tempo de execução
Isso otimiza a capacidade de teste e valida a lógica de comparação de mercado em relação à criação e à precisão da medição.
- Tipo de argumento: booleano
- Padrão:
false
androidx.benchmark.iterations
Modifica as contagens de iterações desejadas por tempo para garantir uma quantidade consistente de trabalho. Isso normalmente é útil apenas com a criação de perfil ativada para ajudar a garantir que uma quantidade consistente de trabalho seja realizada em um rastro de criação de perfil ao comparar diferentes implementações ou execuções. Em outros cenários, isso provavelmente reduz a precisão ou estabilidade das medições.
- Tipo de argumento: número inteiro
- Padrão: não especificado
androidx.benchmark.junit4.SideEffectRunListener
Você poderá receber resultados inconsistentes de comparativos de mercado, se um trabalho em segundo plano não relacionado for executado enquanto o comparativo estiver em execução.
Para desativar o trabalho em segundo plano durante a execução do comparativo de mercado, defina o tipo de argumento de instrumentação listener
como
androidx.benchmark.junit4.SideEffectRunListener
.
- Tipo de argumento: string
- Opções disponíveis:
androidx.benchmark.junit4.SideEffectRunListener
- Padrão: não especificado
androidx.benchmark.output.enable
Permite gravar o arquivo JSON de resultado no armazenamento externo.
- Tipo de argumento: booleano
- Padrão:
true
androidx.benchmark.profiling.mode
Permite capturar arquivos de rastreamento ao realizar comparações. Consulte Criar um perfil de Microbenchmark para conferir as opções disponíveis.
- Tipo de argumento: string
- Opções disponíveis:
MethodTracing
StackSampling
None
- Padrão:
None
androidx.benchmark.suppressErrors
Aceita uma lista de erros separada por vírgulas para transformar em avisos.
- Tipo de argumento: lista de strings
- Opções disponíveis:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Padrão: uma lista vazia
androidx.benchmark.startupMode.enable (descontinuado)
Reconfigura o comportamento de repetição para oferecer suporte ao código de comparação durante a inicialização As comparações são executadas sem repetição de aquecimento em 10 medições. Para minimizar a sobrecarga em Microbenchmarks, a média de repetição é desativada.
- Tipo de argumento: booleano
- Padrão:
false
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado
- Argumentos de instrumentação da biblioteca Macrobenchmark
- Criar um perfil de Microbenchmark
- Criar perfis de referência {:#creating-profile-rules}