다음 계측 인수로 Microbenchmark의 동작을 구성합니다. Gradle 구성에 추가하거나 명령줄에서 계측을 실행할 때 직접 적용할 수 있습니다. 모든 Android 스튜디오 및 명령줄 테스트 실행에 이러한 인수를 설정하려면 인수를 testInstrumentationRunnerArguments
에 추가하세요.
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Android 스튜디오 벤치마크를 실행할 때 계측 인수를 설정할 수도 있습니다. 인수를 변경하려면 다음 단계를 따르세요.
- Edit을 클릭하고 수정하려는 구성을 선택하여 실행 구성을 수정합니다.
- Instrumentation arguments 필드 옆에 있는 를 클릭하여 계측 인수를 수정합니다.
- 를 클릭하고 필요한 계측 인수를 추가합니다.
명령줄에서 벤치마크를 실행하는 경우 -P
android.testInstrumentationRunnerArguments.[name of the argument]
를 사용합니다.
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
am 계측 명령어를 직접 호출하는 경우 (CI 테스트 환경에서 해당할 수 있음) -e
를 사용하여 인수를 am instrument
에 전달합니다.
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
CI에서 벤치마크를 구성하는 방법에 관한 자세한 내용은 CI의 벤치마킹을 참고하세요.
additionalTestOutputDir
JSON 벤치마크 보고서 및 프로파일링 결과를 저장할 기기 내 위치를 구성합니다.
- 인수 유형: 파일 경로 문자열
- 기본값: 테스트 APK의 외부 디렉터리
androidx.benchmark.dryRunMode.enable
벤치마크를 단일 루프로 실행하여 제대로 작동하는지 확인할 수 있습니다.
이는 다음을 의미합니다.
- 구성 오류가 적용되지 않습니다 (예: 에뮬레이터에서 일반 정확성 테스트를 더 쉽게 실행할 수 있도록 하기 위해).
- 벤치마크가 준비 없이 단일 루프만 실행함
- 런타임을 줄이기 위해 측정 및 트레이스가 캡처되지 않음
이렇게 하면 빌드 및 측정 정확성보다 테스트 처리량과 벤치마크 로직 검증에 최적화됩니다.
- 인수 유형: 불리언
- 기본값:
false
androidx.benchmark.iterations
일관된 작업량을 보장하기 위해 시간 기반의 타겟 반복 횟수를 재정의합니다. 이는 일반적으로 여러 구현이나 실행을 비교할 때 프로파일링 트레이스 내에서 일관된 작업량이 실행되도록 하는 프로파일링을 사용 설정한 경우에만 유용합니다. 다른 시나리오에서는 이로 인해 측정의 정확성이나 안정성이 떨어질 수 있습니다.
- 인수 유형: 정수
- 기본값: 지정되지 않음
androidx.benchmark.junit4.SideEffectRunListener
벤치마크가 실행되는 동안 관련 없는 백그라운드 작업이 실행되면 일관되지 않은 벤치마크 결과가 발생할 수 있습니다.
벤치마킹 중에 백그라운드 작업을 사용 중지하려면 listener
계측 인수 유형을 androidx.benchmark.junit4.SideEffectRunListener
로 설정하세요.
- 인수 유형: 문자열
- 사용 가능한 옵션:
androidx.benchmark.junit4.SideEffectRunListener
- 기본값: 지정되지 않음
androidx.benchmark.output.enable
결과 JSON 파일을 외부 저장소에 작성할 수 있습니다.
- 인수 유형: 불리언
- 기본값:
true
androidx.benchmark.profiling.mode
벤치마크를 실행하는 동안 트레이스 파일을 캡처할 수 있습니다. 사용 가능한 옵션은 Microbenchmark 프로파일링을 참고하세요.
- 인수 유형: 문자열
- 사용 가능한 옵션:
MethodTracing
StackSampling
None
- 기본값:
None
androidx.benchmark.suppressErrors
쉼표로 구분된 오류 목록이 경고로 전환되도록 허용합니다.
- 인수 유형: 문자열 목록
- 사용 가능한 옵션:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- 기본값: 빈 목록
androidx.benchmark.startupMode.enable(지원 중단됨)
루프 동작을 다시 구성하여 시작 시 벤치마킹 코드를 지원합니다. 10회 측정의 경우 벤치마크가 준비 루프 없이 실행됩니다. Microbenchmark의 오버헤드를 최소화하기 위해 루프 평균화가 사용 중지됩니다.
- 인수 유형: 불리언
- 기본값:
false
추천 항목
Macrobenchmark 계측 인수
Plan to create quality apps and features from the start by understanding best practices and requirements.
Microbenchmark 프로파일링
Plan to create quality apps and features from the start by understanding best practices and requirements.
기준 프로필 만들기
Plan to create quality apps and features from the start by understanding best practices and requirements.