Thêm các đối số đo lường

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

  1. 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ấu hình chạy
    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 biểu tượng More (Tuỳ chọn khác) của Instrumentation arguments (Đối số đo lường).
    chỉnh sửa các đối số đo lường
    Hình 2. Chỉnh sửa các đối số đo lường.
  3. 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).
    thêm đối số đo lường bắt buộc
    Hình 3. Thêm đối số đo lường bắt buộc.

Nếu bạn đang gọi trực tiếp từ dòng lệnh, hãy dùng -P android.testInstrumentationRunnerArguments.[name of the argument].

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

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 so với các đ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ằng debuggable=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ới debuggable=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