Argumentos de instrumentación de Microbenchmark

Configura el comportamiento de Microbenchmark con los siguientes argumentos de instrumentación. Puedes agregarlos a tu configuración de Gradle o aplicarlos directamente cuando ejecutes la instrumentación desde la línea de comandos. Para establecer estos argumentos para todas las ejecuciones de prueba de línea de comandos y de Android Studio, agrégalos a testInstrumentationRunnerArguments:

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

También puedes configurar argumentos de instrumentación cuando ejecutas comparativas desde Android Studio. Para cambiar los argumentos, haz lo siguiente:

  1. Para editar la configuración de ejecución, haz clic en Edit y selecciona la configuración que deseas editar.
    Figura 1: Edita la configuración de ejecución.
  2. Para editar los argumentos de instrumentación, haz clic en junto al campo Instrumentation arguments.
    Figura 2: Edita el argumento de instrumentación.
  3. Haz clic en y agrega el argumento de instrumentación requerido.
    Figura 3: Agrega el argumento de instrumentación.

Si ejecutas la comparativa desde la línea de comandos, usa -P android.testInstrumentationRunnerArguments.[name of the argument]:

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

Si invocas un comando de instrumentación directamente (lo que puede ser el caso en los entornos de pruebas de CI), pasa el argumento a am instrument con -e:

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

Para obtener más información sobre cómo configurar comparativas en CI, consulta Comparativas en CI.

additionalTestOutputDir

Establece en qué lugar del dispositivo se guardan los informes de comparativas de JSON y los resultados de la generación de perfiles.

  • Tipo de argumento: string de ruta de acceso del archivo
  • Configuración predeterminada: directorio externo del APK de prueba

androidx.benchmark.dryRunMode.enable

Te permite ejecutar comparativas en un solo bucle para verificar si funcionan correctamente.

Esto significa lo siguiente:

  • Los errores de configuración no se aplican (por ejemplo, para facilitar la ejecución con pruebas de corrección normales en emuladores).
  • La comparativa solo ejecuta un bucle, sin preparación
  • No se capturan mediciones ni seguimientos para reducir el tiempo de ejecución.

Esto optimiza la capacidad de procesamiento de pruebas y la validación de la lógica de comparativas en función de la exactitud de la compilación y la medición.

  • Tipo de argumento: booleano
  • Configuración predeterminada: false

androidx.benchmark.iterations

Anula la cantidad de iteraciones objetivo basadas en el tiempo para garantizar una cantidad de trabajo coherente. Por lo general, esto resulta útil solo con la generación de perfiles habilitada para garantizar que se realice una cantidad coherente de trabajo dentro de un seguimiento de generación de perfiles cuando se comparen diferentes implementaciones o ejecuciones. En otras situaciones, es probable que esto reduzca la precisión o la estabilidad de las mediciones.

  • Tipo de argumento: Número entero
  • Configuración predeterminada: No se especifica

androidx.benchmark.junit4.SideEffectRunListener

Es posible que obtengas resultados de comparativas incoherentes si se ejecuta un trabajo en segundo plano no relacionado mientras se ejecutan las comparativas.

Para inhabilitar el trabajo en segundo plano durante las comparativas, establece el tipo de argumento de instrumentación listener en androidx.benchmark.junit4.SideEffectRunListener.

  • Tipo de argumento: Cadena
  • Opciones disponibles:
    • androidx.benchmark.junit4.SideEffectRunListener
  • Configuración predeterminada: no se especifica

androidx.benchmark.output.enable

Permite escribir el archivo JSON resultante en el almacenamiento externo.

  • Tipo de argumento: booleano
  • Configuración predeterminada: true

androidx.benchmark.profiling.mode

Permite capturar archivos de registro mientras se ejecutan las comparativas. Consulta Cómo generar perfiles con Microbenchmark para ver las opciones disponibles.

  • Tipo de argumento: Cadena
  • Opciones disponibles:
    • MethodTracing
    • StackSampling
    • None
  • Configuración predeterminada: None

androidx.benchmark.suppressErrors

Acepta una lista de errores separada por comas que se convertirán en advertencias.

  • Tipo de argumento: Lista de cadenas
  • Opciones disponibles:
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • Configuración predeterminada: una lista vacía

androidx.benchmark.startupMode.enable (Obsoleto)

Reconfigura el comportamiento de bucle para admitir el código de comparativas durante el inicio. Las comparativas se ejecutan sin bucles de preparación en 10 mediciones. Para minimizar la sobrecarga en las microcomparativas, se inhabilitó el promedio de bucles.

  • Tipo de argumento: booleano
  • Configuración predeterminada: false