Simpleperf

Android Studio có một giao diện người dùng đồ hoạ cho Simpleperf, được ghi lại trong bài viết Kiểm tra hoạt động của CPU bằng Trình phân tích CPU. Hầu hết người dùng sẽ thích sử dụng giao diện đó thay vì sử dụng Simpleperf trực tiếp.

Nếu bạn muốn sử dụng dòng lệnh, Simpleperf là một công cụ phân tích CPU dòng lệnh linh hoạt có trong NDK dành cho Mac, Linux và Windows.

Để xem tài liệu đầy đủ, hãy bắt đầu từ tệp README của Simpleperf.

Công thức và mẹo về Simpleperf

Nếu bạn mới bắt đầu sử dụng Simpleperf, thì sau đây là một số lệnh có thể đặc biệt hữu ích. Để biết thêm các lệnh và tuỳ chọn khác, hãy xem Tài liệu tham khảo về lệnh và tuỳ chọn của Simpleperf.

Tìm thư viện dùng chung mất nhiều thời gian thực thi nhất

Bạn có thể chạy lệnh này để xem tệp .so nào chiếm tỷ lệ phần trăm lớn nhất trong thời gian thực thi (dựa trên số chu kỳ của CPU). Đây là lệnh đầu tiên bạn nên chạy khi bắt đầu phiên phân tích hiệu suất.

$ simpleperf report --sort dso

Tìm hàm mất nhiều thời gian thực thi nhất

Sau khi xác định được thư viện dùng chung chiếm hầu hết thời gian thực thi, bạn có thể chạy lệnh này để xem tỷ lệ phần trăm thời gian dành cho việc thực thi các chức năng của tệp .so đó.

$ simpleperf report --dsos library.so --sort symbol

Tìm tỷ lệ phần trăm thời gian dành cho luồng

Bạn có thể chia thời gian thực thi trong tệp .so cho nhiều luồng. Bạn có thể chạy lệnh này để xem tỷ lệ phần trăm thời gian dành cho mỗi luồng.

$ simpleperf report --sort tid,comm

Tìm tỷ lệ phần trăm thời gian dành cho các mô-đun đối tượng

Sau khi tìm thấy luồng chiếm hầu hết thời gian thực thi, bạn có thể sử dụng lệnh này để tách riêng các mô-đun đối tượng cần thời gian thực thi dài nhất trên các luồng đó.

$ simpleperf report --tids threadID --sort dso

Xem mối liên quan giữa các lệnh gọi hàm

Biểu đồ lệnh gọi trình bày trực quan dấu vết ngăn xếp mà Simpleperf ghi lại trong phiên phân tích.

Bạn có thể sử dụng lệnh report -g để đưa ra (print) biểu đồ lệnh gọi nhằm xem các hàm khác gọi hàm nào. Lệnh này rất hữu ích khi bạn cần xác định xem một hàm bị chậm là do bản thân hàm đó hay do một hoặc nhiều hàm được hàm đó gọi bị chậm.

$ simpleperf report -g

Bạn cũng có thể sử dụng tập lệnh Python report.py -g để khởi động một công cụ tương tác hiển thị các hàm. Bạn có thể nhấp vào từng hàm để xem lượng thời gian dành cho các hàm con.

Phân tích ứng dụng tạo bằng Unity

Nếu bạn đang phân tích một ứng dụng được xây dựng bằng Unity, hãy nhớ tạo ứng dụng có ký hiệu gỡ lỗi bằng cách làm theo các bước sau:

  1. Mở dự án Android trong Trình chỉnh sửa Unity.
  2. Trong cửa sổ Build Settings (Cài đặt bản dựng) cho nền tảng Android, hãy nhớ đánh dấu tuỳ chọn Development Build (Bản dựng phát triển).
  3. Nhấp vào Player Settings (Cài đặt trình phát) và đặt thuộc tính Stripping Level (Loại bỏ cấp) thành Disabled (Tắt).