2013-07-25 24 views
24

chờ đợi tôi vừa cập nhật một Galaxy Nexus đến 4,3 và kích hoạt mới chức năng GPU profiling trên màn hình, và xem kết quả sau cho màn hình thiết lập Android:Android 4.3 trên màn hình GPU profiling - gfx dài thời gian

enter image description here

Theo platform highlights:

[With] colors indicating time spent creating drawing commands (blue), issuing the commands (orange), and waiting for the commands to complete (yellow). 

Ngay cả trên một màn hình rất đơn giản, có nhiều trường hợp rằng thời gian màn hình làm mới cao hơn ngưỡng cho 60 fps mịn (đường màu xanh), và nó chủ yếu là BECA sử dụng có rất nhiều trường hợp mà việc làm mới sẽ dành một thời gian đáng kể chờ đợi cho các lệnh để hoàn thành (dòng màu vàng *), trong khi các lần khác, bước này gần như tức thời. Đây không phải là một cái gì đó đặc biệt đối với ứng dụng Cài đặt, nhưng dường như có mặt cho tất cả các ứng dụng tôi đã thử nghiệm cho đến nay. * trông cam hơn màu vàng để tôi

Những gì tôi muốn biết là:

  1. là thời gian này dành "chờ đợi các lệnh để hoàn thành" nghĩa là các lệnh màn hình đang được tích cực xử lý và do đó thời gian sẽ đại diện chính xác thời gian vẽ màn hình. HOẶC hiện thời gian này có bao gồm thời gian chờ đồng bộ hóa video hay không (mặc dù tôi nghĩ bộ đệm ba sẽ được sử dụng để xóa yêu cầu này)?
  2. Thời gian dành cho "chờ lệnh hoàn thành" sẽ biến động ngay cả khi vẽ cùng một màn hình (cuộn nhẹ lên & xuống trên cùng ScrollView), có hướng dẫn nào về cách giảm biến động này hay không được giảm ở tất cả)?

[Edit:]

Cập nhật Nexus 7 là tốt, và nó thậm chí còn tồi tệ hơn:

enter image description here

Có đến 5 khung hình đang được bỏ qua "chờ đợi các lệnh để hoàn thành "và nó thực sự cho thấy trong sử dụng, các ứng dụng đã rất choppy và không phản hồi.

[Chỉnh sửa 2:] tôi đã thực hiện những mỗi this article để kích hoạt TRIM cho ~ 3 ngày, do đó các N7 nên càng "hoang sơ" như nó đang diễn ra để có được ngắn của một factory reset.

  • Thiết bị này đã nhàn rỗi trong hơn một giờ
  • Không có sự kiện bảo trì nhàn rỗi đã được thực hiện trong vòng 24 giờ qua
  • Thiết bị này là một trong hai bị buộc tội pin 30 phần trăm hoặc nó có pin 80 phần trăm

Hiện tại Google Maps có vẻ hoạt động tốt hơn một chút (xem bên dưới), vì vậy một số vấn đề có thể liên quan đến tốc độ truy cập flash mặc dù tôi không biết làm cách nào.

enter image description here

Tuy nhiên, kể từ khi Galaxy Nexus là factory reset, dài của nó "chờ đợi các lệnh để hoàn thành" thời gian không thể liên quan đến việc thiếu lệnh TRIM, và làm theo các bước ở trên thực sự didn' t cải tiến. Vì vậy, chúng tôi đang trở lại tại một hình vuông ...

+0

@ Yume117 chủ yếu là các cập nhật nhỏ, vì vậy đừng mong đợi thế giới của bạn phát nổ trong điều tuyệt vời: P – Kai

+1

Câu hỏi hay. Tôi không có các đồ thị tương tự (tôi đã nhận một GN quá) nhưng tôi nhìn thấy mâu thuẫn nặng trong màn hình chủ. Làm thế nào có thể rendering cùng một điều mất x ms và sau đó 3-5x? Tôi muốn tôi có thể có một tùy chọn "vô hiệu hóa java": | – RelativeGames

+1

Về # 2, đây có phải là hiệu ứng quan sát không? Việc tắt hồ sơ có thay đổi sự lộn xộn/chậm trễ không? – Geobits

Trả lời

3

"Đang đợi lệnh hoàn tất" cho biết rằng có phụ thuộc vào khung được hiển thị. Ví dụ: ứng dụng có thể đang sử dụng glReadPixels để đọc từ khung được hiển thị. Điều này có nghĩa là sau khi khung đã được gửi tới GPU để hiển thị, ứng dụng sẽ bị chặn cho đến khi kết thúc khung đó (trong khi bình thường nó sẽ có thể tiếp tục ngay lập tức). Android cố gắng để ứng dụng xếp hàng càng nhiều lệnh hiển thị càng tốt, do đó đột nhiên giới thiệu sự chờ đợi có thể thực sự có nghĩa là ứng dụng phải đợi một số khung được xếp hàng trước đó trước khi khung đang chờ hiển thị.

glReadPixels không phải là lệnh duy nhất gây ra loại phụ thuộc này. Nếu ứng dụng muốn ghi vào kết cấu hiện đang được sử dụng, nó phải đợi cho đến khi tất cả các khung phụ thuộc vào kết cấu đã hoàn thành. Điều này là chính xác những gì đang xảy ra với Google Maps: nếu mỗi lát bản đồ là một kết cấu, nó có thể đang sử dụng lại một gạch cũ trên màn hình bằng cách viết một lát mới vào nó sẵn sàng để hiển thị. Khi ứng dụng đã xếp hàng đợi một khung không sử dụng lát cũ, nó cố gắng ghi vào kết cấu đó, nhưng thực sự kết cấu vẫn đang được sử dụng để hiển thị các khung hình xếp hàng trước đó. Ứng dụng phải chờ cho đến khi các khung đó kết thúc (và GPU không còn đọc được từ kết cấu 'không sử dụng') trước khi nó có thể ghi.

Về lý thuyết, có thể có một chuỗi công nhân ghi vào kết cấu, cho phép chuỗi chính tiếp tục xếp hàng khung mới một cách mượt mà. Nhưng mô hình chuỗi phức tạp của GL làm cho nó rất khó khăn để có được một cái gì đó như thế này đúng, và chủ đề chính cuối cùng sẽ phải chờ đợi cho các kết cấu tải lên để hoàn thành anyway.

Đối với ứng dụng Cài đặt, có thể là chương trình phụ trợ GL của Android đang thực hiện cùng một mẹo sử dụng lại kết cấu cho các biểu tượng, nhưng đó chỉ là phỏng đoán. Có lẽ Galaxy Nexus đang sử dụng một nhà soạn nhạc 2D để làm thành phần khung, tiết kiệm điện nhưng với chi phí giới thiệu một chờ đợi trong trình điều khiển. Tôi không biết liệu loại phụ thuộc đó có được đo lường trong biểu đồ hay không.

+0

Điều này có vẻ hợp lý với đôi mắt của tôi (chưa được đào tạo). Tuy nhiên, nếu sự chờ đợi tăng đột biến cho một cái gì đó đơn giản như màn hình cài đặt là "làm việc-như-nó-nghĩa vụ-to", tôi thực sự không thấy làm thế nào các ứng dụng Android có thể hy vọng tiếp cận sự trơn tru của các đối tác iOS của họ ... – Kai

+0

Có lẽ Galaxy Nexus chỉ là một chút thiếu sức mạnh đối với JB, giống như một chiếc iPad cũ bị thua nặng nề với phiên bản iOS mới nhất. Tôi không nhận được mức tăng tương tự hoặc độ trễ đáng chú ý trên Nexus 7 (2012) của mình. –

+0

Thực ra tôi đã lưu ý rằng năm 2012 N7 có cùng vấn đề với Google Maps, nhưng nó hoạt động tốt hơn một chút với các ứng dụng khác.iPad cũ có thể hoạt động kém do hạn chế về bộ nhớ và hỗ trợ đa nhiệm (tốt hơn). JB không thực sự mang bất cứ thứ gì như thế vào bàn, và một trong những mục tiêu của họ là cải thiện hiệu suất 4.x vì vậy ngay cả điện thoại giá rẻ cũng có thể được xây dựng với Android 4.x thay vì bám vào 2.3.6. Than ôi, tôi cho rằng luôn có Android 5.0 để mong được rằng cuối cùng sẽ giải quyết tất cả các tai ương nền tảng Android (/ s) – Kai

Các vấn đề liên quan