Định cấu hình hành vi của Microbenchmark bằng các đối số đo lường sau. Bạn có thể thêm các đối số này vào cấu hình Gradle hoặc áp dụng trực tiếp trong khi chạy các công cụ đo lường qua dòng lệnh. Để đặt những đối số này cho tất cả các lần chạy kiểm thử dòng lệnh và Android Studio, hãy thêm chúng vào testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Bạn cũng có thể thiết lập đối số đo lường khi chạy phép đo điểm chuẩn trong Android Studio. Để thay đổi các đối số, hãy làm như sau:
- Chỉnh sửa cấu hình chạy bằng cách nhấp vào Edit (Chỉnh sửa) rồi chọn cấu hình bạn muốn chỉnh sửa.
Hình 1. Chỉnh sửa cấu hình chạy. - Chỉnh sửa các đối số đo lường bằng cách nhấp vào
Hình 2. Chỉnh sửa đối số đo lường.
bên cạnh trường Instrumentation arguments (Đối số đo lường).
- Nhấp vào
Hình 3. Thêm đối số đo lường.
rồi thêm đối số đo lường bắt buộc.
Nếu bạn đang chạy phép đo điểm chuẩn từ dòng lệnh, hãy sử dụng -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
Nếu bạn đang gọi trực tiếp lệnh am instrument (có thể là trường hợp trong môi trường kiểm thử CI), hãy truyền đối số đến am instrument
bằng -e
:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
Để biết thêm thông tin về cách định cấu hình điểm chuẩn trong CI, hãy xem phần Đo điểm chuẩn trong CI
androidx.benchmark.cpuEventCounter.enable (thử nghiệm)
Đếm số sự kiện CPU được chỉ định trong androidx.benchmark.cupEventCounter.events
.
Yêu cầu quyền truy cập thư mục gốc.
- Loại đối số: boolean
- Mặc định là: false
androidx.benchmark.cpuEventCounter.events (thử nghiệm)
Chỉ định những loại sự kiện CPU cần tính. Để sử dụng đối số này, bạn phải đặt androidx.benchmark.cpuEventCounter.enable
thành true
.
- Loại đối số: danh sách chuỗi được phân tách bằng dấu phẩy
- Các tuỳ chọn hiện có:
Instructions
CPUCycles
L1DReferences
L1DMisses
BranchInstructions
BranchMisses
L1IReferences
L1IMisses
- Mặc định là:
Instructions
,CpuCycles
,BranchMisses
androidx.benchmark.dryRunMode.enable
Cho phép bạn chạy phép đo điểm chuẩn trong một vòng lặp để xác minh rằng các điểm chuẩn đó hoạt động đúng cách.
Điều này có nghĩa là:
- Lỗi cấu hình không được thực thi (ví dụ: để dễ dàng chạy với các kiểm thử tính chính xác thông thường trên trình mô phỏng)
- Phép đo điểm chuẩn chỉ chạy một vòng lặp duy nhất, không có giai đoạn khởi động
- Các phép đo và dấu vết không được ghi lại để giảm thời gian chạy
Điều này tối ưu hoá cho thông lượng kiểm thử và xác thực logic đo điểm chuẩn so với độ chính xác của bản dựng và phép đo.
- Loại đối số: boolean
- Mặc định là:
false
androidx.benchmark.killExistingPerfettoRecordings
Theo mặc định, Benchmark sẽ tắt mọi bản ghi Perfetto (System Trace) hiện có khi bắt đầu một dấu vết mới để giảm nhiễu. Để tắt hành vi này, hãy truyền false
.
- Loại đối số: boolean
- Mặc định là:
true
androidx.benchmark.output.enable
Cho phép ghi tệp JSON kết quả vào bộ nhớ ngoài.
- Loại đối số: boolean
- Mặc định là:
true
androidx.benchmark.profiling.mode
Cho phép chụp tệp các theo dõi trong khi chạy điểm chuẩn. Vui lòng xem bài viết Phân tích Microbenchmark để biết các tuỳ chọn có sẵn.
Xin lưu ý rằng một số phiên bản hệ điều hành Android không hỗ trợ tính năng theo dõi phương thức mà không ảnh hưởng đến các phép đo tiếp theo. Microbenchmark sẽ gửi một ngoại lệ để ngăn chặn điều này, vì vậy, hãy dùng đối số mặc định để chỉ ghi lại dấu vết phương thức khi bạn có thể làm như vậy một cách an toàn. Xem Vấn đề #316174880.
- Loại đối số: chuỗi
- Các tuỳ chọn hiện có:
MethodTracing
StackSampling
None
- Mặc định là: Phiên bản an toàn của
MethodTracing
, chỉ ghi lại dấu vết phương thức nếu thiết bị có thể làm như vậy mà không ảnh hưởng đến các phép đo.
androidx.benchmark.suppressErrors
Chấp nhận danh sách lỗi được phân tách bằng dấu phẩy để chuyển thành cảnh báo.
- Loại đối số: danh sách chuỗi
- Các tuỳ chọn hiện có:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Mặc định là: danh sách trống
additionalTestOutputDir
Định cấu hình nơi lưu báo cáo điểm chuẩn JSON và kết quả phân tích tài nguyên trên thiết bị.
- Loại đối số: chuỗi đường dẫn tệp
- Mặc định là: kiểm tra thư mục bên ngoài của APK
trình nghe
Bạn có thể nhận được kết quả đo điểm chuẩn không nhất quán nếu thực thi công việc không liên quan ở chế độ nền trong khi đang chạy phép đo điểm chuẩn.
Để tắt công việc ở chế độ nền trong quá trình đo điểm chuẩn, hãy đặt loại đối số đo lường listener
thành androidx.benchmark.junit4.SideEffectRunListener
.
- Loại đối số: chuỗi
- Các tuỳ chọn hiện có:
androidx.benchmark.junit4.SideEffectRunListener
- Mặc định là: không chỉ định
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Đối số đo lường Macrobenchmark
- Phân tích tài nguyên một Microbenchmark
- Tạo Hồ sơ cơ sở {:#creating-profile-rules}