Uygulama geliştiricilerin karşılaştığı en zor sorunlardan biri, sorunsuz ve hatasız animasyonlar oluşturmaktır. Bu durum, sistem kaynak yoğun arka plan görevleri de gerçekleştiriyorsa hata ayıklamayı özellikle zorlaştırabilir. Bir hatanın uygulamanızdan mı yoksa sistemden mi kaynaklandığını belirlemek zor olabilir. Ancak bir profil oluşturma aracı, kötü davranışın olası kaynağını belirlemenize yardımcı olabilir.
ChromeOS'te oluşturma
Oyun gibi ince ayarlı uygulamalar, kullanıcı yanıt süresini mümkün olduğunca düşük tutmak için genellikle çift arabelleğe alma kullanır. Ancak 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 önceki kare tekrarlanır.
Bu durumda oluşturucu, bir sonraki kareyi oluşturmaya başlayamaz ve daha da fazla soruna neden olur. Bu senaryo, Android mobil geliştiricileri için tanıdıktır. Bir uygulama ChromeOS'te çalışırken bağlam daha da karmaşık hale gelir.
Masaüstünde çalışan bir uygulama doğrudan ekranın görüntü çerçevesinde oluşturulmuyor. Bunun yerine verilerini doku olarak işler. Genellikle her biri grafiklerini bir doku halinde işleyen birden fazla uygulama vardır. Sistem, tüm dokuları tek bir masaüstü görüntüsünde birleştirmek için birleştirici kullanarak ekrandaki görünümü oluşturur.
Birleştirici, arka planda şeffaf bir şekilde çalışır ancak GPU ardışık düzeninin kullanımını en üst düzeye çıkarmak için bir karelik zaman gecikmesi oluşturur. Bu gecikme, sistem performansındaki dalgalanmaları azaltır ve asimetrik yükün dengelenmesine yardımcı olur.
İşletim sistemi yoğun çalışırken GPU sıkışabilir. Bu durum, bir karenin oluşturulmasıyla ekranda görünmesi arasında gecikmeye neden olur. Sistem, donanıma bağlı olarak bunu telafi etmek için dörtlü arabelleğe alma kullanabilir. Daha derin arabelleğe alma işleminde bile grafik işlem hattı aksaklık gösterebilir.
ARC grafik izleyici
ChromeOS'te, arabelleklerin sistemde nasıl sızdığını, bellek takaslarının 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 oluşturma aracı vardır. Bu araç, aşağıdaki resimde gösterilmektedir:
Profiler'ı ayarlama
Profiler'ı 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.
Profiler'ı kullanmadan önce uygulamanıza izler ekleyin.
İzleme eklemek istediğiniz her yere kodunuza Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); ekleyin. customTrace önekiyle başlayan bir Event kullanın. Önek, izleme mesajında görünmüyor.
Profiler'ı ayarlamak için aşağıdaki adımları uygulayın:
- Geliştirici modunu açın.
- Chrome ayarlarını açın ve ARC grafik arabellekleri görselleştirme aracını etkinleştirin.
chrome://arc-graphics-tracingadresine gidiş rotasını izle.
Profil oluşturucuyu çalıştırma
- Glitch'te durdur'u seçin.
- Android uygulamasını çalıştırın.
- Android uygulaması etkin ve odaklanmış durumdayken
Control+Shift+Gtuşlarına basın.
Bir hata oluştuğunda tarayıcı penceresi açılır. Zaman çizelgesini yakınlaştırmak ve küçültmek için W ve S tuşlarını kullanın.