Profilleri yapay zeka ile analiz etme

ProfilingManager profilleri standart Perfetto biçimini kullandığından ve PerfettoSQL ile sorgulanabildiğinden, Perfetto kullanıcı arayüzünde zaman çizelgelerinde manuel olarak gezinmek veya Perfetto Standart Kitaplığı'na özel sorgular yazmak yerine doğrudan çalışma alanınızda kök neden analizini otomatikleştirmek için bir yapay zeka kodlama temsilcisini Perfetto yapay zeka becerisiyle eşleyebilirsiniz:

  1. Profili yükleme: Temsilci, Perfetto'nun trace_processor aracını kullanarak toplanan profili açar.
  2. Teşhis sorgularını yürütme: Perfetto yapay zeka becerisinin rehberliğinde temsilci, standart kitaplık modüllerini (ör. takılma için android.frames.timeline veya bellek sızıntıları için android.memory.heap_graph.dominator_tree) sorgular ve sorgularını iteratif olarak hassaslaştırır.
  3. Kaynak koduyla ilişkilendirme: Temsilci, profildeki özel izleme dilimlerini, örneklenmiş çağrı yığınlarını veya tutulan sınıf adlarını doğrudan Kotlin ya da Java kaynak dosyalarınızla eşler ve bir düzeltme önerir.

Perfetto AI becerisini ayarlama

Açık kaynaklı Perfetto yapay zeka becerisi, kodlama temsilcilerine trace_processor çalıştırmayı, PerfettoSQL yazmayı ve Android bellek ile CPU analizi için rehberli iş akışlarını takip etmeyi öğretir. Her yükleme bir trace_processor sarmalayıcı içerir. Bu nedenle, trace_processor'yi ayrı olarak yüklemeniz gerekmez:

  • Yapay zeka ile yükleme: Herhangi bir yapay zeka kodlama temsilcisinde aşağıdaki istemi çalıştırın:

    Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agent
    
  • Manuel olarak yükleme: Temsilciniz (ör. Claude Code, Codex, Cursor, Antigravity veya OpenCode) için Perfetto ile yapay zeka kullanma bölümündeki kurulum talimatlarını uygulayın.

İş akışı örnekleri

Kaydedilen profillerden birini veya daha fazlasını çalışma alanınıza yerleştirin ve yapay zeka temsilcinizden inceleme yapmasını isteyin. Tek bir sorunu teşhis etmek için tek bir profili analiz edebilir veya kalıpları ve gerilemeleri toplu olarak karşılaştırmak için birden fazla profil iletebilirsiniz.

Java yığın dökümlerini ve OOM'leri analiz etme

Doğrudan PROFILING_TYPE_JAVA_HEAP_DUMP ile veya TRIGGER_TYPE_OOM tetikleyicisi aracılığıyla otomatik olarak yakalanan bir Java yığın dökümü sağladığınızda Perfetto yapay zeka becerisini kullanan bir yapay zeka ajanı, aşağıdakileri belirlemenize yardımcı olabilir:

  • Bellek sızıntıları: Geri alınması gerekirken GC köklerinden erişilebilir durumda kalan, yok edilmiş Activity veya Fragment örnekleri gibi nesneler.
  • Çok sayıda yinelenen nesne: Beklenmedik şekilde yüksek örnek sayısına sahip olan ve toplu olarak yığının büyük bir kısmını tüketen sınıflar.
  • Bellek verimsizlikleri: Aşırı büyük önbellekler, gereksiz veri yapıları veya orantısız miktarda bellek tutan tek baskın nesneler.

Bir OutOfMemoryError yığın dökümünü incelemek ve uygulamanızın kaynak koduyla ilişkilendirmek için aşağıdaki gibi bir istem çalıştırın:

Analyze the Perfetto OOM heap dump at </path/to/profile>, which corresponds to
the codebase located at </path/to/codebase> using the Perfetto AI skill and find
the root cause of the OutOfMemoryError.

Bu istemin oluşturduğu raporun eksiksiz örneğini (baskın ağaç tutma yolu, kaynak kodu temel nedeni ve önerilen düzeltme dahil) görmek için Örnek olay: OOM kilitlenmesini hata ayıklama bölümündeki Yapay zeka ajanıyla OOM incelemesini otomatikleştirme başlıklı makaleyi inceleyin.

Sistem izlerini ve ANR'leri analiz etme

Doğrudan PROFILING_TYPE_SYSTEM_TRACE ile veya otomatik olarak TRIGGER_TYPE_ANR tetikleyicisi aracılığıyla yakalanan bir sistem izi sağladığınızda Perfetto AI becerisini kullanan bir yapay zeka aracısı şunları belirlemenize yardımcı olabilir:

  • Ana iş parçacığı işlemlerini engelleme: Kullanıcı arayüzü iş parçacığının, giriş etkinliklerini işlemesini veya ANR eşiğinden önce kare çizmesini engelleyen uzun süreli izleme dilimleri ya da eşzamanlı çağrılar.
  • İş parçacığı durumu darboğazları: Ana iş parçacığının Sleeping (ör. ağ G/Ç'sini engelleme veya Thread.sleep zaman aşımı), Blocked (kilit çekişmesi) ya da Runnable (CPU planlama gecikmeleri) durumlarında takılı kaldığı aralıklar.
  • Ana iş parçacığı CPU ani artışları: Arka plan iş parçacığı yerine doğrudan kullanıcı arayüzü iş parçacığında yürütülen yüksek maliyetli hesaplamalar veya sıkı döngüler.

ANR sistem izini incelemek ve uygulamanızın kaynak koduyla ilişkilendirmek için aşağıdaki gibi bir istem çalıştırın:

Analyze the Perfetto system trace at </path/to/trace.perfetto-trace>, which
corresponds to an ANR trace, and find the root cause of the ANR using the
Perfetto AI skill. The codebase is located at </path/to/codebase>.

Bu istemin oluşturduğu raporun ana iş parçacığı dilimi dökümü, thread_state aralık yeniden yapılandırması ve kaynak kodu eşlemesi dahil olmak üzere eksiksiz bir örneğini görmek için Örnek olay: ANR'de hata ayıklama bölümündeki Yapay zeka temsilcisiyle ANR incelemesini otomatikleştirme başlıklı makaleyi inceleyin.