다음 계측 인수로 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
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- Macrobenchmark 계측 인수
- Microbenchmark 프로파일링
- 기준 프로필 만들기{:#creating-profile-rules}