Đối số đo lường dụng cụ Microbenchmark (Điểm chuẩn vi mô)

Đị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:

  1. 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.
  2. Chỉnh sửa các đối số đo lường bằng cách nhấp vào bên cạnh trường Instrumentation arguments (Đối số đo lường).
    Hình 2. Chỉnh sửa đối số đo lường.
  3. Nhấp vào rồi thêm đối số đo lường bắt buộc.
    Hình 3. Thêm đối số đo lường.

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