Wuthering Waves là một trò chơi nhập vai hành động có độ chân thực cao do Kuro Games phát triển. Việc tối ưu hoá mức tiêu thụ điện năng rất quan trọng để mang lại trải nghiệm người dùng cao cấp một cách bền vững trong các phiên chơi trò chơi dài.
Android Studio đã ra mắt Trình phân tích năng lượng từ Hedgehog (2023.1.1) có thể giúp nhà phát triển hiểu rõ dữ liệu về mức tiêu thụ năng lượng dựa trên Trình theo dõi mức tiêu thụ năng lượng trên thiết bị (ODPM).
Với các tính năng phân tích điện năng trong Android Studio, bạn cũng có thể kiểm thử A/B hiệu quả mức tiêu thụ điện năng cho các tính năng của ứng dụng Android (như minh hoạ bên dưới).
Những việc họ đã làm
Kuro Games bắt đầu bằng cách sử dụng Trình phân tích năng lượng của Android Studio để tìm hiểu mức độ tác động của hành vi trò chơi đến mức tiêu thụ năng lượng của thiết bị. Kinh nghiệm này đã giúp họ phát triển một công cụ tuỳ chỉnh dựa trên Perfetto và ODPM, kết hợp với các tính năng cải tiến sau:
- Chế độ xem tuỳ chỉnh – nhà phát triển có thể lọc đường dẫn năng lượng và đặt trước các phạm vi thời gian linh hoạt.
- Bảo trì hiệu quả hơn – nhà phát triển có thể tải dữ liệu mức tiêu thụ điện năng lên hệ thống kiểm thử chất lượng tuỳ chỉnh của họ và so sánh dữ liệu trên các phiên bản trò chơi.
Xử lý dữ liệu ODPM
Để truy cập dữ liệu ODPM, Kuro Games đã sử dụng API chỉ số của Trình xử lý theo dõi Perfetto (Python) để xử lý avg_used_power_mw data
của phiên 30 giây từ chỉ số android_powerrails
, được xác định là AndroidPowerRails
trong proto chỉ số Pertetto, theo định dạng sau:
Đường dẫn năng lượng | Chất lượng đồ hoạ | Khung hình/giây | Độ sáng | Mức tiêu thụ điện năng trung bình | Tỷ lệ phần trăm(Mỗi kênh / Tổng số) |
---|---|---|---|---|---|
power.rail.cpu.big | Cao | 30 | Thấp | 474,158 mW | 14,70% |
power.rail.cpu.mid | Cao | 30 | Thấp | 470,916 mW | 14,60% |
power.rail.cpu.little | Cao | 30 | Thấp | 438,662mW | 13,60% |
power.rail.gpu | Cao | 30 | Thấp | 346,761 mW | 10,70% |
... | ... | ... | ... | ... | ... |
Xác định các đường dẫn nguồn tiêu thụ nhiều năng lượng
Không có giá trị tiêu chuẩn cho mỗi đường dẫn nguồn. Để xác định các đường dẫn nguồn tiêu thụ nhiều năng lượng, Kuro Games đã tạo các thử nghiệm A/B bằng nhiều trường hợp kiểm thử, bao gồm cả trạng thái rảnh, chạy và chiến đấu. Bạn có thể xác định các đường dẫn năng lượng cụ thể có giá trị cao rõ ràng bằng cách so sánh các giá trị của cùng một đường dẫn năng lượng. Bằng cách so sánh sự khác biệt về hành vi trên nhiều trường hợp kiểm thử, nguyên nhân gốc rễ của vấn đề tiêu thụ điện năng sẽ dần được tìm ra.
Tối ưu hoá
Với dữ liệu ODPM, Kuro Games có thể đo lường mức độ cải thiện của từng kịch bản tối ưu hoá:
- Thay đổi chiến lược lên lịch lõi CPU và điều chỉnh mức độ ưu tiên của các luồng khác nhau để giảm tải cho các lõi lớn
- Biên dịch trước PSO (Đối tượng trạng thái quy trình) để giảm mức tải biên dịch chương trình đổ bóng thời gian chạy của CPU
- Triển khai tính năng loại bỏ PVS (Nhóm có thể nhìn thấy) để giảm khối lượng công việc kết xuất GPU
- Phép kết xuất bóng đổ ngoại tuyến để giảm khối lượng công việc kết xuất GPU
Để so sánh kết quả kiểm thử trong các điều kiện giống hệt nhau và có thể tái tạo, Kuro Games đã truy xuất dữ liệu ODPM trong một trường hợp kiểm thử bằng cách sử dụng cùng một cảnh 3D và phối cảnh máy ảnh với cùng một thời lượng.
Kết quả
Bằng cách tận dụng dữ liệu từ ODPM và tính năng phân tích năng lượng, Kuro Games đã giảm tổng mức tiêu thụ năng lượng xuống 9,68%, từ 3233 mW trong bản phát hành tháng 9 (phiên bản 0904) xuống còn 2920 mW trong bản phát hành tháng 11 (phiên bản 1.4 chính thức). Hình sau đây trình bày chi tiết về mức giảm điện năng này trong chế độ cài đặt FPS và đồ hoạ nhất quán.
Dữ liệu ODPM hiện chỉ có trên các thiết bị Pixel 6 trở lên, nhưng bạn có thể thấy sự cải thiện trên tất cả thiết bị Android thông qua các chỉ số khác, bao gồm Mức sử dụng CPU, Mức sử dụng GPU và Batterystats. Ví dụ: Kuro Games cũng nhận thấy mức sử dụng GPU giảm tổng thể 9, 6% trong cùng một cảnh trên Oppo Reno 5.
Bắt đầu
Bạn có thể bắt đầu từ Trình phân tích năng lượng hoặc dữ liệu Đường dẫn năng lượng Perfetto cho các trường hợp sử dụng nâng cao.
Tên của Đường dẫn năng lượng ODPM là dành riêng cho từng thiết bị. Tên đường dẫn có thể là "S2S_VDD_G3D"; bạn cần có kiến thức cụ thể về phần cứng thiết bị để diễn giải dữ liệu tương ứng của trình giám sát nguồn. Từ API Android cấp 35, bạn có thể sử dụng PowerMonitor
từ getSupportedPowerMonitors
.
Với PowerMonitor, bạn có thể truy xuất mối liên kết giữa các nhãn mà con người có thể đọc được và tên của các đường dẫn nguồn điện thô do từng nhà sản xuất thiết bị gốc (OEM) đặt.
Để xác minh mức độ cải thiện trên các thiết bị không có ODPM, bạn có thể sử dụng tốc độ xung nhịp CPU, tốc độ xung nhịp GPU và ước tính băng thông bộ nhớ làm proxy cho mức tiêu thụ điện năng.
Tài nguyên khác
Tối ưu hoá hiệu suất năng lượng