Argumentos de instrumentação de Microbenchmark

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:

  1. Edite a configuração de execução clicando em Edit e selecionando a configuração que você quer editar.
    Figura 1. Edite a configuração de execução.
  2. Edite os argumentos de instrumentação clicando em ao lado do campo Instrumentation arguments.
    Figura 2. Edite o argumento de instrumentação.
  3. Clique em e adicione o argumento de instrumentação necessário.
    Figura 3. Adicione o argumento de instrumentação.

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