Đặt hồ sơ một Microbenchmark

Theo mặc định, Microbenchmarks cung cấp cho bạn thông tin về thời gian và phân bổ mã được thực thi. Nếu muốn tìm hiểu lý do khiến mã được đo lường chạy chậm, bạn có thể chạy các điểm chuẩn có đính kèm trình phân tích CPU. Bạn có thể chọn cấu hình trình phân tích cú pháp bằng cách thêm đối số chạy đo lường androidx.benchmark.profiling.mode với một trong các thuộc tính sau:MethodTracing, StackSampling hoặc đối số None (như được hiển thị trong đoạn mã sau). Để biết thêm thông tin về các tùy chọn, hãy xem Chọn cấu hình bản ghi.

Groovy

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling'
    }
}

Kotlin

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling"
    }
}

Khi bạn thiết lập điểm chuẩn, tệp .trace đầu ra sẽ được sao chép sang máy chủ, trong thư mục cùng với kết quả JSON. Mở tệp này bằng Android Studio bằng cách sử dụng Tệp > Mở để kiểm tra kết quả phân tích cú pháp trong Trình phân tích CPU.

Tìm dấu vết phương thức

Với tìm dấu vết phương thức, điểm chuẩn sẽ khởi động trước khi chụp lại phương pháp theo dõi, ghi lại mọi phương thức do điểm chuẩn của bạn gọi. Kết quả hiệu suất bị ảnh hưởng đáng kể do chi phí thu thập dữ liệu của mỗi phương thức nhập/xuất.

Lấy mẫu ngăn xếp

Với lấy mẫu ngăn xếp, các điểm chuẩn mẫu gọi ngăn xếp sau khi quá trình khởi động hoàn tất. Bạn có thể điều khiển tần suất mẫuthời lượng lấy mẫu bằng cách sử dụng các đối số đo lường.

Trên Android 10 (API 29) trở lên, tính năng lấy mẫu ngăn xếp sử dụng Simpleperf để lấy mẫu các lệnh gọi ứng dụng mẫu, bao gồm mã C++. Trên Android 9 (API 28) trở xuống, ứng dụng này sử dụng Debug.startMethodTracingSampling để thu thập các mẫu ngăn xếp.

Bạn có thể định cấu hình chế độ cấu hình này bằng cách thêm các đối số đo lường khác.

  • androidx.benchmark.profiling.sampleFrequency

    • Số lượng mẫu ngăn xếp cần chụp mỗi giây
    • Loại đối số: số nguyên
    • Mặc định là 1.000 mẫu mỗi giây.
  • androidx.benchmark.profiling.sampleDurationSeconds

    • Thời lượng điểm chuẩn để chạy.
    • Loại đối số: số nguyên
    • Mặc định là 5 giây.

Không có

Không chụp tệp hồ sơ. Thông tin về thời gian và cách phân bổ vẫn được đo lường.