Đo điểm chuẩn của ứng dụng

Đo điểm chuẩn là một cách để kiểm tra và giám sát hiệu suất của ứng dụng. Bạn có thể thường xuyên chạy phép đo điểm chuẩn để phân tích và gỡ lỗi các vấn đề về hiệu suất, đồng thời đảm bảo rằng bạn không tạo lượt hồi quy trong các thay đổi gần đây.

Android cung cấp hai cách tiếp cận và thư viện đo điểm chuẩn để phân tích cũng như kiểm thử các loại tình huống trong ứng dụng của bạn: Macrobenchmark và Microbenchmark.

Macrobenchmark

Thư viện Macrobenchmark đo lường các hoạt động tương tác lớn hơn của người dùng cuối, chẳng hạn như khởi động, tương tác với giao diện người dùng và các ảnh động. Thư viện cung cấp quyền kiểm soát trực tiếp đối với môi trường hiệu suất mà bạn đang kiểm thử. Thư viện này cho phép bạn kiểm soát quá trình biên dịch và khởi động cũng như dừng ứng dụng để đo lường trực tiếp quá trình khởi động hoặc cuộn ứng dụng thực tế.

Thư viện Macrobenchmark sẽ chèn các sự kiện và theo dõi kết quả bên ngoài qua một ứng dụng kiểm thử được tạo bằng các hoạt động kiểm thử của bạn. Do đó, khi viết phép đo điểm chuẩn, bạn không gọi trực tiếp mã ứng dụng mà thay vào đó sẽ điều hướng trong ứng dụng với tư cách người dùng.

Microbenchmark

Thư viện Microbenchmark cho phép bạn đo điểm chuẩn cho mã ứng dụng ngay trong một vòng lặp. Thư viện này được thiết kế để đo lường hoạt động của CPU nhằm đánh giá hiệu suất tốt nhất có thể, chẳng hạn như khởi động Đúng thời điểm (JIT), quyền truy cập vào ổ đĩa được lưu vào bộ nhớ đệm mà bạn có thể nhìn thấy bằng vòng lặp bên trong hoặc một hàm nóng cụ thể. ​​Thư viện chỉ có thể đo lường mã mà bạn có thể gọi riêng trực tiếp.

Nếu ứng dụng của bạn cần phải xử lý một cấu trúc dữ liệu phức tạp hoặc có một số thuật toán cụ thể cần phải tính toán nhiều được gọi nhiều lần trong quá trình chạy ứng dụng thì đây có thể là những hoạt động tiêu biểu cần được đo điểm chuẩn. Bạn cũng có thể đo lường các phần trên giao diện người dùng. Ví dụ: bạn có thể đo lường chi phí của việc liên kết mục RecyclerView, thời gian cần để tăng cường một bố cục hoặc việc truyền bố cục và đo lường của lớp View tốn nhiều thời gian và công sức như thế nào từ góc độ hiệu suất.

Tuy nhiên, bạn sẽ không thể đo lường mức độ đóng góp của các trường hợp được đo điểm chuẩn vào trải nghiệm tổng thể của người dùng. Trong một số trường hợp, hoạt động đo điểm chuẩn sẽ không cho bạn biết liệu mình có đang cải thiện nút thắt cổ chai như thời gian khởi động ứng dụng hoặc thời gian bị giật hay không. Vì vậy, trước tiên bạn cần phải xác định những nút thắt cổ chai đó bằng Trình phân tích tài nguyên Android. Sau khi tìm thấy mã mà bạn muốn tìm hiểu và tối ưu hoá, vòng lặp được đo điểm chuẩn có thể chạy lặp đi lặp lại một cách nhanh chóng và dễ dàng để tạo ra kết quả ít dao động hơn, giúp bạn tập trung xử lý một điểm cần cải thiện.

Thư viện Microbenchmark chỉ báo cáo thông tin về ứng dụng, không báo cáo thông tin tổng quan về hệ thống. Do đó, tốt nhất bạn nên phân tích hiệu suất của các tình huống cụ thể cho ứng dụng chứ không phải những tình huống có thể liên quan đến các vấn đề chung về hệ thống.

So sánh thư viện điểm chuẩn

Macrobenchmark Microbenchmark
Phiên bản API 23 trở lên 14 trở lên
Chức năng Đo lường các điểm truy cập hoặc hoạt động tương tác ở mức tổng thể (chẳng hạn như khởi chạy hoạt động hoặc cuộn danh sách). Đo các chức năng riêng lẻ.
Phạm vi Kiểm thử ngoài quy trình đối với toàn bộ ứng dụng. Kiểm thử trong quá trình xử lý của CPU.
Tốc độ Tốc độ lặp lại trung bình (có thể vượt quá một phút). Tốc độ lặp lại nhanh (thường dưới 10 giây).
Theo dõi Kết quả đi kèm với phân tích dấu vết. Phương pháp lấy mẫu và truy vết không bắt buộc.