Gỡ lỗi ảnh động bị lỗi

Một trong những vấn đề khó khăn nhất đối với nhà phát triển ứng dụng là tạo hiệu ứng mượt mà, không bị giật. Điều này có thể đặc biệt khó gỡ lỗi khi hệ thống cũng đang thực hiện các tác vụ tốn nhiều tài nguyên ở chế độ nền. Bạn có thể gặp khó khăn khi xác định xem sự cố là do ứng dụng hay hệ thống gây ra. Tuy nhiên, công cụ phân tích hiệu suất có thể giúp bạn xác định nguồn có thể gây ra hành vi không mong muốn.

Kết xuất trên ChromeOS

Một ứng dụng được tinh chỉnh, chẳng hạn như một trò chơi, thường sử dụng bộ nhớ đệm kép để giữ thời gian phản hồi của người dùng ở mức thấp nhất có thể. Tuy nhiên, có nhiều yếu tố có thể làm giảm hiệu suất. Ví dụ: nếu quá trình kết xuất một khung hình mất quá nhiều thời gian, thì kết quả được kết xuất sẽ không sẵn sàng cho lần hoán đổi bộ đệm tiếp theo và khung hình trước sẽ lặp lại.

Sau đó, trình kết xuất không thể bắt đầu kết xuất khung hình tiếp theo, gây ra nhiều vấn đề hơn nữa. Đây là một tình huống quen thuộc đối với nhà phát triển ứng dụng di động Android. Khi một ứng dụng chạy trên ChromeOS, bối cảnh sẽ phức tạp hơn.

Một ứng dụng chạy trên máy tính không hiển thị trực tiếp vào khung hiển thị của màn hình. Thay vào đó, nó sẽ kết xuất dữ liệu của mình thành một hoạ tiết. Thường có nhiều ứng dụng, mỗi ứng dụng kết xuất đồ hoạ vào một hoạ tiết. Hệ thống tạo khung hiển thị trên màn hình bằng cách sử dụng một trình kết hợp để kết hợp tất cả các hoạ tiết thành một hình ảnh duy nhất trên màn hình.

Trình kết hợp hoạt động minh bạch ở chế độ nền, nhưng sẽ gây ra độ trễ thời gian một khung hình để tối đa hoá việc sử dụng quy trình GPU. Độ trễ này giúp giảm bớt biến động hiệu suất hệ thống và cân bằng tải không đối xứng.

Khi hệ điều hành hoạt động hết công suất, GPU có thể bị quá tải, gây ra độ trễ giữa thời điểm một khung hình kết xuất và thời điểm khung hình đó xuất hiện trên màn hình. Hệ thống có thể sử dụng bộ nhớ đệm gấp bốn lần để bù, tuỳ thuộc vào phần cứng. Ngay cả khi có bộ nhớ đệm sâu hơn, quy trình đồ hoạ vẫn có thể gặp trục trặc.

Trình theo dõi đồ hoạ ARC

ChromeOS có một công cụ lập hồ sơ cho biết cách các vùng đệm được truyền qua hệ thống, thời điểm xảy ra việc hoán đổi bộ nhớ, mức độ bận của CPU/GPU và những gì ứng dụng của bạn đang làm tại một thời điểm nhất định, như trong hình ảnh sau:

Giao diện người dùng của trình theo dõi đồ hoạ ARC, cho thấy dòng thời gian của các quy trình hệ thống.
Hình 1. Giao diện người dùng của trình theo dõi đồ hoạ ARC, cho thấy dòng thời gian của các quy trình hệ thống.

Thiết lập trình phân tích tài nguyên

Để sử dụng trình phân tích tài nguyên, bạn phải chạy M75 trở lên. Để có kết quả tốt nhất, hãy sử dụng thiết bị Intel.

Trước khi sử dụng trình phân tích tài nguyên, hãy gieo mầm ứng dụng của bạn bằng các dấu vết. Thêm Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); vào mã của bạn ở bất cứ nơi nào bạn muốn thêm dấu vết. Sử dụng một Event bắt đầu bằng tiền tố customTrace. Tiền tố không xuất hiện trong thông báo theo dõi.

Để thiết lập trình phân tích tài nguyên, hãy làm theo các bước sau:

  1. Bật chế độ nhà phát triển.
  2. Bật chế độ cài đặt Chrome và bật công cụ trực quan hoá bộ đệm đồ hoạ ARC.
  3. Chuyển đến chrome://arc-graphics-tracing.

Chạy trình phân tích tài nguyên

  1. Chọn stop on glitch (dừng khi có lỗi).
  2. Chạy ứng dụng Android.
  3. Khi ứng dụng Android đang hoạt động và có tiêu điểm, hãy nhấn tổ hợp phím Control+Shift+G.

Khi xảy ra lỗi, một cửa sổ trình duyệt sẽ bật lên. Dùng phím WS để phóng to và thu nhỏ dòng thời gian.