Memvisualisasikan profil di UI Perfetto

Setelah mengambil profil dari perangkat pengujian atau mendownloadnya dari backend, Anda dapat membuka file di Perfetto UI untuk memeriksa linimasa, status thread, dan grafik retensi memori. Halaman ini menjelaskan cara menavigasi pelacakan sistem yang disamarkan dan heap dump Java yang diambil dengan ProfilingManager.

Memvisualisasikan pelacakan sistem

Buka file .perfetto-trace di UI Perfetto untuk memeriksa aktivitas CPU dan thread dari waktu ke waktu.

Linimasa pelacakan sistem yang disamarkan di UI Perfetto
Gambar 1. Contoh rekaman aktivitas yang disamarkan.

Untuk melindungi privasi pengguna, ProfilingManager menyamarkan pelacakan sistem dengan menggabungkan aktivitas CPU dari semua proses lain ke dalam satu jalur OtherProcesses. Dengan memeriksa jalur gabungan ini, Anda tetap dapat menentukan apakah kelambatan di aplikasi disebabkan oleh bottleneck internal atau beban perangkat secara keseluruhan.

Gambar 2 menyoroti bagian utama pelacakan sistem yang disamarkan:

Bagian bernomor dari pelacakan sistem yang disamarkan di UI Perfetto
Gambar 2. Bagian rekaman aktivitas yang disamarkan.
  1. Daftar CPU: Menampilkan semua prosesor yang tersedia di perangkat Anda.
  2. Tugas CPU: Menampilkan thread yang dijalankan setiap CPU.
  3. Tampilan proses lainnya: Menampilkan resource CPU yang digunakan oleh proses lain.
  4. Process View: Menampilkan proses aplikasi Anda.
  5. Threads View: Menampilkan thread yang berjalan dalam proses Anda dan status thread-nya (Dapat dijalankan (R), Berjalan (R), Tidur (S), Tidur yang Tidak Dapat Diganggu (D)), yang dipetakan langsung ke Status Proses Linux.
  6. Trace slices: Bagian ini menampilkan anotasi rekaman aktivitas yang ditambahkan oleh developer aplikasi atau framework. Anotasi ini mencakup komputasi antara Trace.beginSection dan Trace.endSection.

Untuk mengetahui informasi selengkapnya tentang UI Perfetto dan visualisasi rekaman aktivitas, lihat dokumen Perfetto.

Memvisualisasikan heap dump Java

Setelah Anda merekam heap dump Java menggunakan PROFILING_TYPE_JAVA_HEAP_DUMP, buka file .perfetto-java-heap-dump yang dihasilkan di Perfetto UI untuk mengidentifikasi kebocoran memori atau mengoptimalkan penggunaan memori. Di Heapdump Explorer, Anda dapat menjelajahi grafik heap, memeriksa flame graph ukuran objek kumulatif, serta menjelajahi class, objek, dan dominator, seperti yang ditunjukkan pada Gambar 3.

Heapdump Explorer di UI Perfetto menampilkan grafik flame ukuran objek heap Java.
Gambar 3. Grafik flame heap dump Java di UI Perfetto.

Perbedaan dump heap ProfilingManager dengan dump HPROF

Tidak seperti heap dump .hprof standar (seperti yang diambil dengan Debug.dumpHprofData atau di Android Studio), ProfilingManager mengambil heap dump ART Perfetto (.perfetto-java-heap-dump). Daripada membuang konten memori mentah, ProfilingManager mencatat grafik retensi objek dan metadata ukuran sambil menghilangkan data mentah yang disimpan di dalam objek:

  • Yang dikumpulkan:
    • Class dan jenis: Nama class, hierarki superclass, classloader, ukuran instance, dan jenis referensi (seperti class normal, array, string, atau referensi lemah, soft, finalizer, dan phantom).
    • Instance dan ukuran objek: Shallow size setiap objek (self_size), region heap-nya (HEAP_TYPE_APP, HEAP_TYPE_ZYGOTE, atau HEAP_TYPE_BOOT_IMAGE), dan memori native terkait yang terdaftar melalui NativeAllocationRegistry.
    • Referensi dan root GC: Root pembersihan sampah memori (seperti JNI global dan lokal, frame stack Java, dan objek thread) serta rantai referensi tingkat kolom yang menunjukkan objek mana yang mempertahankan objek lain dan melalui nama kolom mana.
    • Pilih metadata penentuan ukuran: Metadata tidak sensitif untuk jenis framework tertentu, seperti dimensi Bitmap (mWidth dan mHeight).
  • Yang dihilangkan: Nilai kolom primitif sebenarnya, konten karakter String, dan payload array mentah (byte[], char[], dan array primitif lainnya). Menghilangkan konten objek mentah akan melindungi privasi pengguna di perangkat produksi dan membuat file dump jauh lebih kecil.

Langkah berikutnya

Selain pemeriksaan visual di UI Perfetto, Anda dapat membuat kueri profil dengan PerfettoSQL, menganalisis rekaman aktivitas secara massal, atau menganalisis profil dengan AI.