Định cấu hình hoạt động của thư viện 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), sau đó nhấp vào cấu hình.
- Chỉnh sửa các đối số đo lường bằng cách nhấp vào biểu tượng More (Tuỳ chọn khác) của Instrumentation arguments (Đối số đo lường).
- Thêm đối số đo lường bắt buộc bằng cách nhấp vào Add (Thêm) trong phần Instrumentation Extra Params (Tham số đo lường bổ sung).
Nếu bạn đang chạy macrobenchmark 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.enabledRules=BaselineProfile
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.enabledRules BaselineProfile -w com.example.macrobenchmark/androidx.test.runner.AndroidJUnitRunner
Để 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.compilation.enabled
Cho phép bạn tắt tính năng biên dịch giữa mỗi lần lặp lại phép đo điểm chuẩn. Theo mặc định, ứng dụng mục tiêu được cài đặt và biên dịch lại giữa mỗi phép đo điểm chuẩn để tuân theo CompilationMode
được truyền vào measureRepeated
. Việc tắt tuỳ chọn này cho phép bạn bỏ qua cả thao tác cài đặt lại và biên dịch, chẳng hạn như khi bạn muốn biên dịch ứng dụng mục tiêu một cách hoàn chỉnh một lần trước khi chạy bộ kiểm thử, đồng thời chạy tất cả các phép đo điểm chuẩn dựa trên mục tiêu đã biên dịch hoàn chỉnh đó.
- Loại đối số: boolean
- Mặc định là:
true
androidx.benchmark.dryRunMode.enable
Cho phép bạn chạy các phép đo điểm chuẩn trong một vòng lặp để xác minh xem chúng có hoạt động đúng cách hay không. Bạn có thể dùng phương pháp này với các bài kiểm thử thông thường trong quá trình xác minh.
- Loại đối số: boolean
- Mặc định là:
false
androidx.benchmark.enabledRules
Cho phép lọc để chỉ chạy một loại thử nghiệm: Thử nghiệm tạo Hồ sơ cơ sở hoặc thử nghiệm Macrobenchmark. Danh sách được phân tách bằng dấu phẩy cũng được hỗ trợ.
- Loại đối số: chuỗi
- Các tùy chọn hiện có:
Macrobenchmark
BaselineProfile
- Mặc định là: Không được chỉ định
androidx.benchmark.junit4.SideEffectRunListener
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
androidx.benchmark.fullTracing.enable
Bật các điểm theo dõi androidx.tracing.perfetto
, chẳng hạn như theo dõi thành phần Jetpack Compose.
Bạn cần thiết lập dự án để có thể thu thập dữ liệu theo dõi thành phần từ điểm chuẩn. Để biết thêm thông tin, hãy xem phần Ghi lại dấu vết bằng Jetpack Macrobenchmark.
- Loại đối số: boolean
- Mặc định là:
false
androidx.benchmark.profiling.mode
Cho phép ghi lại các tệp theo dõi trong khi chạy điểm chuẩn. Các tuỳ chọn có sẵn cũng giống như các tuỳ chọn dành cho thư viện Microbenchmark. Để biết thêm thông tin, hãy xem nội dung mô tả tại phần Phân tích tài nguyên một Microbenchmark.
- Loại đối số: chuỗi
- Các tuỳ chọn hiện có:
MethodTracing
StackSampling
None
- Mặc định là:
None
androidx.benchmark.startupProfiles.enable
Cho phép bạn tắt tính năng tạo hồ sơ khởi động trong khi đo điểm chuẩn.
- Loại đối số: boolean
- Mặc định là:
true
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 các chuỗi
Các lựa chọn hiện có:
DEBUGGABLE
Lỗi
DEBUGGABLE
cho biết gói mục tiêu đang chạy bằngdebuggable=true
trong tệp kê khai, làm giảm đáng kể hiệu suất trong thời gian chạy để hỗ trợ các tính năng gỡ lỗi. Để tránh lỗi này, hãy chạy các phép đo điểm chuẩn vớidebuggable=false
. Đối số debuggable này ảnh hưởng đến tốc độ thực thi theo những cách mà các cải tiến về phép đo điểm chuẩn có thể không đem lại trải nghiệm thực cho người dùng hoặc có thể làm giảm hiệu suất của bản phát hành.LOW-BATTERY
Khi pin yếu, các thiết bị thường giảm hiệu suất để tiết kiệm lượng pin còn lại, chẳng hạn như bằng cách vô hiệu hoá các lõi lớn. Việc này xảy ra ngay cả khi bạn đã cắm thiết bị. Chỉ loại bỏ lỗi này nếu bạn đang có chủ ý phân tích ứng dụng khi hiệu suất giảm.
EMULATOR
Lỗi
EMULATOR
cho bạn biết rằng phép đo điểm chuẩn đang chạy trên một trình mô phỏng không thể hiện được các thiết bị thực của người dùng. Các cải tiến về phép đo điểm chuẩn của trình mô phỏng có thể không mang lại trải nghiệm thực cho người dùng hoặc có thể làm giảm hiệu suất thực của thiết bị. Thay vào đó, bạn nên dùng một thiết bị thực để đo điểm chuẩn. Hãy loại bỏ lỗi này một cách thận trọng.NOT-PROFILEABLE
$packageName
của gói mục tiêu đang chạy mà không có<profileable shell=true>
. Cần có thuộc tính có thể phân tích trên Android 10 và 11 để cho phép Macrobenchmark thu thập thông tin theo dõi chi tiết trong quy trình mục tiêu, chẳng hạn như các phần theo dõi hệ thống được xác định trong ứng dụng hoặc thư viện. Hãy loại bỏ lỗi này một cách thận trọng.METHOD-TRACING-ENABLED
Quá trình chạy Macrobenchmark cho ứng dụng đang đo điểm chuẩn được bật tính năng theo dõi phương thức. Việc này khiến máy ảo chạy chậm hơn so với bình thường. Vì vậy, hãy chỉ cân nhắc các chỉ số từ các tệp theo dõi trong điều kiện tương đối – ví dụ: so sánh tốc độ chạy của lần chạy đầu tiên với lần chạy thứ hai. Việc loại bỏ lỗi này có thể dẫn đến kết quả không chính xác nếu bạn so sánh điểm chuẩn của các bản dựng với nhiều lựa chọn theo dõi phương thức.
Mặc định là: danh sách trống
additionalTestOutputDir
Định cấu hình vị trí báo cáo điểm chuẩn JSON và kết quả phân tích được lưu trên thiết bị.
- Loại đối số: chuỗi đường dẫn
- Mặc định là: kiểm tra thư mục bên ngoài của APK
Đề 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 trong Microbenchmark
- Tạo Hồ sơ cơ sở
- Thư viện JankStats