Hata ayıklama animasyonu duraklaması

Uygulama geliştiricilerin en zor sorunlarından biri düzgün, hatasız ve sorunsuz animasyonların sağlanmasıdır. Sistem aynı zamanda kaynak yoğun arka plan görevleri de gerçekleştiriyorsa bu konuda hata ayıklamak özellikle zordur. Bazı duraklamaların uygulamanızdan mı yoksa sistemden mi kaynaklandığını belirlemenin kolay bir yolu yoktur. Ancak kötü davranışın olası kaynağını belirlemenize yardımcı olabilecek bir profil aracı aracı bulunmaktadır.

ChromeOS'te oluştur

Oyun gibi hassas ayarlar yapılmış bir uygulama, kullanıcının yanıt süresini mümkün olduğunca düşük tutmak için genellikle çift arabelleğe alma yöntemini kullanır. Yine de performansı düşürebilecek birçok şey vardır. Örneğin, bir karenin oluşturulması çok uzun sürerse oluşturulan sonuç bir sonraki arabellek değişimi için hazır olmaz ve sonuç olarak önceki kare tekrar eder.

Oluşturucu sonraki kareyi oluşturmaya başlayamaz ve bu da daha fazla soruna yol açar. Bu senaryo, Android mobil geliştiricilerinin aşina olduğu bir senaryodur. Bir uygulama ChromeOS üzerinde çalıştığında bağlam daha da karmaşıktır.

Masaüstünde çalışan bir uygulama, doğrudan ekranın ekran çerçevesinde oluşturulmaz. Bunun yerine verilerini bir doku halinde oluşturur. Genellikle her biri grafiklerini bir doku halinde oluşturan birçok uygulama vardır. Sistem, tüm dokuları tek bir masaüstü resminde birleştirmek için bir düzenleyici kullanarak ekrandaki görünümü oluşturur.

Oluşturucu, arka planda şeffaf bir şekilde çalışır. Ancak GPU ardışık düzeninin kullanımını en üst düzeye çıkarmak için tek karelik bir gecikme süresi uygular. İdeal bir dünyada bu gerekli olmayabilir ancak sistem performansındaki dalgalanmaları hafifletir ve asimetrik yükü dengelemeye yardımcı olur.

OS çok yoğun çalışırken GPU sıkılabilir. Bir karenin oluşturulmasından ekranda görünmesi arasında bir gecikme olabilir. Donanıma bağlı olarak, sistem bunu dengelemek için dörtlü arabelleğe alma kullanabilir. Daha derin arabelleğe alma durumlarında bile grafik ardışık düzeninde aksamalar olabilir.

ARC grafik izleyicisi

ChromeOS, arabelleklerin sisteme nasıl sızdığını, bellek değişikliklerinin ne zaman gerçekleştiğini, CPU/GPU'nun ne kadar meşgul olduğunu ve uygulamanızın belirli bir zamanda ne yaptığını gösteren bir profil çıkarma aracına sahiptir. Aşağıdaki resimde gösterilmiştir:

Profil düzenleyiciyi ayarlama

Profil düzenleyiciyi kullanmak için M75 veya sonraki bir sürümü çalıştırmanız gerekir. En iyi sonuçlar için Intel cihaz kullanın.

Profil oluşturucuyu kullanmadan önce uygulamanızı izlerle kaynaklayın. Kodunuzda iz eklemek istediğiniz yere Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); ekleyin. customTrace önekiyle başlayan bir Event kullanın. Önek, izleme mesajında görünmez.

Profil oluşturucuyu ayarlamak için aşağıdaki adımları uygulayın:

  1. Geliştirici modunu açın.
  2. Chrome ayarlarını açın ve ARC grafik arabellekleri görselleştirme aracını etkinleştirin.
  3. chrome://arc-graphics-tracing adresine gidiş rotasını izle.

Profil düzenleyiciyi çalıştırma

  1. Jank'ta durdur'u seçin.
  2. Android uygulamasını çalıştırın.
  3. Android uygulaması etkin durumdayken ve odaktayken Control+Üst Karakter+G tuşlarına basın.

Bir olumsuzluk olduğunda bir tarayıcı penceresi açılır. Zaman çizelgesini yakınlaştırmak ve daraltmak için W ve S tuşlarını kullanın.