Điểm chuẩn chính là một nhóm điểm chuẩn bao gồm hành trình của người dùng ứng dụng ở cấp cao, chẳng hạn như khi khởi động ứng dụng hoặc cuộn trong ứng dụng Pokedex mã nguồn mở.
- Điểm chuẩn về tốc độ khởi động: Theo dõi thời gian từ khi mở ứng dụng đến khi nội dung hiển thị.
- Điểm chuẩn cho thành phần chính có thể cuộn: Đo lường hiệu suất cuộn của một lưới tải chậm có hình ảnh.
Thiết lập thử nghiệm
- Lựa chọn ứng dụng: Chúng tôi đã tiến hành các thử nghiệm này bằng ứng dụng Pokedex nguồn mở, so sánh phiên bản dựa trên View và phiên bản dựa trên Compose. Ứng dụng này được chọn để minh hoạ các tình huống thực tế và không phải do nhóm Compose phát triển.
- Thiết lập phần cứng: Chúng tôi đã chạy các phép đo điểm chuẩn trên Pixel 3a chạy Android 12 (API 31) với CPU và GPU bị khoá. Thiết bị này được dùng làm đường cơ sở hiệu suất tiêu chuẩn cho các điểm chuẩn nổi bật.
- Thiết lập bản dựng: Các điểm chuẩn sử dụng ứng dụng được tạo ở chế độ phát hành với R8 đã bật. Ứng dụng được biên dịch trước hoàn toàn để giảm tình trạng không ổn định do quá trình biên dịch đúng thời điểm (JIT).
- Lựa chọn kết quả: Để đảm bảo phân tích trường hợp xấu nhất, các giá trị ngoại lệ cực đoan và nhiễu không đại diện đã bị loại trừ khỏi kết quả đo điểm chuẩn. Sau đó, đường cơ sở được thiết lập bằng cách chọn các giá trị trung bình của dữ liệu hiệu suất giới hạn trên
Điểm chuẩn về hiệu suất khởi động
Để đo lường quá trình khởi động, chúng tôi đã sử dụng PokedexStartupBenchmark. PokedexStartupBenchmark đo lường thời gian cần thiết để người dùng nhìn thấy ứng dụng Pokedex.
Hoạt động khởi chạy ứng dụng có thể diễn ra ở một trong 3 trạng thái: khởi động nguội, khởi động ấm hoặc khởi động nóng. Mỗi trạng thái ảnh hưởng đến khoảng thời gian mà ứng dụng hiển thị cho người dùng. Khi khởi động nguội, ứng dụng sẽ khởi động lại từ đầu. Trong điểm chuẩn này, chúng tôi đo lường hiệu suất khởi chạy ứng dụng ở trạng thái khởi động nguội. Bạn nên tối ưu hoá ứng dụng dựa trên giả định khởi động nguội. Việc này cũng có thể cải thiện hiệu suất của chế độ khởi động ấm và nóng.
Các chỉ số mà chúng tôi dùng để đo lường thời gian khởi động ứng dụng là thời gian hiển thị khung hình đầu tiên và thời gian hiển thị đầy đủ.
Thời gian để hiển thị khung hình đầu tiên
Thời gian xuất hiện khung hình đầu tiên (TTID) đo thời gian cần thiết để một ứng dụng tạo ra khung hình đầu tiên, bao gồm cả khởi chạy quy trình khi khởi động nguội, tạo hoạt động khi khởi động nguội hoặc khởi động ấm và hiển thị khung hình đầu tiên.
Trong PokedexStartupBenchmark, Compose 1.11 chậm hơn 2,5% so với Views đối với TTID khi khởi động nguội.
Thời gian để hiển thị đầy đủ
Thời gian xuất hiện đầy đủ (TTFD) đo thời gian cho đến khi ứng dụng có thể tương tác. Điều này có nghĩa là tất cả dữ liệu đã được tải và vẽ. Để biết thêm thông tin về thời gian hiển thị đầy đủ, hãy xem bài viết Thời gian khởi động ứng dụng.
Trong PokedexStartupBenchmark, Compose 1.11 chậm hơn 13% so với Views về TTFD khi khởi động nguội.
Điểm chuẩn về thành phần chính có thể cuộn
Để đo lường hiệu suất cuộn, chúng tôi đã sử dụng PokedexScrollBenchmark. Thử nghiệm này đo lường hiệu suất cuộn của màn hình ứng dụng Pokedex cho một lưới trì hoãn có hình ảnh. Trong phép đo điểm chuẩn này, toàn bộ màn hình sẽ được cuộn và hất nhiều lần, đồng thời các mục mới sẽ được tải. Hiệu suất cuộn được đo bằng tỷ lệ giật.
Tỷ lệ giật
Các thiết bị Android kết xuất ở tốc độ tối đa là 60 hoặc 120 khung hình/giây (fps). Điều này có nghĩa là hệ thống có thời hạn nghiêm ngặt (ví dụ: 16, 6 mili giây cho 60 khung hình/giây) để tạo một khung hình. Nếu ứng dụng mất quá nhiều thời gian để thực hiện công việc, thì điều này có thể gây ra hiện tượng giật mà chúng ta gọi là khung hình bị bỏ qua.
Trong PokedexScrollBenchmark, Compose và Khung hiển thị đạt được hiệu suất tương đương là 0,21% khung hình bị giật kể từ Compose 1.9.0. Theo số liệu tuyệt đối, 1 trong số 485 khung hình bị giật.
Các điểm chuẩn này cho thấy Compose 1.9 trở lên có hiệu suất tương đương với Khung hiển thị về hiện tượng giật khi di chuyển.
Chạy phép đo điểm chuẩn về tướng
Cách xác thực kết quả hiệu quả và chạy các điểm chuẩn cục bộ:
- Hãy làm theo hướng dẫn về AndroidX để xem mã nguồn.
- Làm theo hướng dẫn trong mã nguồn Điểm chuẩn hiệu suất hàng đầu.
Bạn có thể chạy các điểm chuẩn này trên mọi thiết bị được hỗ trợ, chẳng hạn như một thiết bị cụ thể mà bạn đang tối ưu hoá ứng dụng. Tuy nhiên, để xác thực kết quả chính thức, hãy sử dụng cùng một cấu hình phần cứng.