Memeriksa log rekaman aktivitas dengan Traceview

Traceview sudah tidak digunakan lagi. Jika menggunakan Android Studio 3.2 atau yang lebih baru, sebaiknya gunakan CPU Profiler untuk memeriksa file .trace yang diambil dengan menginstrumentasikan aplikasi Anda dengan class Debug, membuat rekaman aktivitas metode baru, menyimpan file .trace, dan memeriksa penggunaan CPU real-time dari proses aplikasi.

Traceview adalah alat yang memberikan representasi grafis dari log rekaman aktivitas. Log tersebut bisa Anda peroleh dengan melengkapi kode menggunakan class Debug. Metode perekaman aktivitas ini sangat akurat karena dapat menentukan lokasi persis yang Anda inginkan dalam kode untuk mulai dan berhenti melakukan pencatatan log data rekaman aktivitas. Jika Anda belum membuat log rekaman aktivitas ini dan menyimpannya dari perangkat yang terhubung ke komputer lokal, buka Membuat log rekaman aktivitas dengan menginstrumentasikan aplikasi Anda. Memeriksa log ini menggunakan Traceview akan membantu Anda men-debug aplikasi dan membuat profil performanya.

Tips: Anda dapat menggunakan dmtracedump dari command line untuk membuat diagram stack panggilan grafis file log rekaman aktivitas.

Jika Anda tidak perlu melihat log rekaman aktivitas yang telah direkam dengan menginstrumentasikan aplikasi dengan class Debug, Anda dapat menggunakan CPU Profiler yang disertakan dalam Android Studio 3.0 dan yang lebih baru untuk memeriksa thread aplikasi dan membuat rekaman aktivitas metode.

Membuka log rekaman aktivitas menggunakan Traceview

Untuk membuka log rekaman aktivitas dengan Traceview dari Android Studio, lakukan langkah berikut:

  1. Mulai Android Device Monitor.
  2. Di Android Device Monitor, pilih File > Open File.
  3. Buka file .trace yang ingin Anda periksa.
  4. Klik Open.

Catatan: Jika Anda mencoba melihat log rekaman aktivitas aplikasi yang di-build dengan penyingkatan kode yang diaktifkan (seperti build rilis), beberapa metode dan nama anggota mungkin akan di-obfuscate. Anda dapat menggunakan file mapping.txt Proguard untuk mencari tahu nama asli yang tidak di-obfuscate. Untuk informasi selengkapnya tentang file ini, lihat Mendekode pelacakan tumpukan yang di-obfuscate.

Catatan: Menjalankan traceview dari command line sudah tidak digunakan lagi.

Ringkasan Traceview

Setelah membuka log rekaman aktivitas, Traceview akan menampilkan data log menggunakan dua panel berikut:

  • Panel linimasa yang mendeskripsikan waktu setiap thread masuk dan keluar dari suatu metode
  • Panel profil yang meringkas eksekusi setiap thread selama periode log rekaman aktivitas

Bagian di bawah ini memberikan informasi tambahan tentang panel output Traceview.

Panel linimasa

Gambar 1 menunjukkan tampilan dekat panel linimasa. Setiap eksekusi thread ditampilkan di barisnya masing-masing, dengan waktu berlalu yang meningkat ke kanan. Setiap metode ditampilkan dengan berbagai warna. Garis tipis di bawah baris pertama menunjukkan turunan (dari masuk hingga keluar) metode yang dipilih.

Panel linimasa Traceview

Gambar 1. Panel linimasa Traceview.

Panel profil

Seperti yang ditunjukkan pada gambar 2, panel profil berisi daftar setiap metode yang dijalankan sistem selama periode log rekaman aktivitas dan waktu yang dihabiskan untuk menjalankan metode-metode tersebut. Sebuah metode yang memanggil metode lain disebut sebagai induk, dan metode yang dipanggil induk disebut sebagai turunan. Ketika Anda memilih metode dengan mengkliknya, metode tersebut akan menampilkan induk dan turunannya di bawah dua node yang terpisah.

Untuk setiap metode (node tingkat atas), tabel menunjukkan waktu inklusif dan eksklusif (dalam milidetik) serta persentase total waktu. Waktu eksklusif adalah waktu yang dihabiskan untuk menjalankan kode metodenya sendiri, sementara waktu inklusif adalah waktu yang dihabiskan untuk menjalankan kode metodenya sendiri ditambah waktu yang dihabiskan untuk menjalankan turunannya. Informasi pengaturan waktu juga dilaporkan sehubungan dengan waktu CPU dan real-time. Waktu CPU hanya mempertimbangkan waktu saat thread aktif menggunakan waktu CPU, sementara real-time memberikan informasi pengaturan waktu absolut sejak aplikasi Anda memasuki suatu metode hingga saat keluar dari metode tersebut, terlepas dari apakah thread aktif atau tidur.

Untuk setiap node tingkat atas di panel profil, kolom Calls + Rec, Calls/Total dalam tabel (tidak diperlihatkan dalam gambar 2) melaporkan jumlah panggilan ke metode dan jumlah panggilan berulang. Atau, untuk metode induk dan turunan, kolom ini menampilkan jumlah panggilan saat metode tersebut menjadi turunan atau induk metode dalam node tingkat atas.

Panel profil Traceview.

Gambar 2. Panel profil Traceview.

Masalah umum Traceview

Pencatatan log Traceview tidak menangani thread dengan baik, sehingga menghasilkan masalah berikut:

  • Jika thread keluar selama pembuatan profil, nama thread tidak akan ditampilkan (diperbaiki di Android 5.1 dan yang lebih baru);
  • VM menggunakan kembali ID thread. Jika thread berhenti dan yang lainnya dimulai, thread tersebut mungkin mendapatkan ID yang sama.