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 pelacakan dengan Traceview dari Android Studio, lanjutkan seperti berikut:
- Mulai Android Device Monitor.
- Di Android Device Monitor, pilih File > Open File.
- Buka file
.trace
yang ingin Anda periksa. - Klik Buka.
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 stack trace
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.
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.
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.