Untuk mulai merekam aktivitas, pilih konfigurasi rekaman dari menu dropdown di atas atau di bawah CPU Profiler dan klik Record.
Lakukan sesuatu dengan aplikasi, lalu klik Stop setelah selesai. Profiler otomatis menampilkan informasi pelacakannya pada panel rekaman aktivitas, seperti yang ditunjukkan pada Gambar 2.
- Selected range: Menentukan porsi waktu terekam yang akan diperiksa di panel rekaman aktivitas. Saat merekam aktivitas untuk kali pertama, CPU Profiler akan secara otomatis memilih keseluruhan panjang rekaman Anda di linimasa CPU. Anda dapat memeriksa data perekaman aktivitas untuk sebagian waktu yang terekam dengan menarik bagian tepi region yang disorot.
- Interaction section: Menampilkan interaksi pengguna dan peristiwa siklus proses aplikasi di sepanjang linimasa.
- Threads section: Menampilkan aktivitas status thread (seperti berjalan,
tidur, dll.) dan Call Chart (atau diagram peristiwa rekaman aktivitas di Pelacakan Sistem)
untuk setiap thread di sepanjang linimasa.
- Gunakan pintasan mouse dan keyboard untuk membuka linimasa.
- Klik dua kali nama thread atau tekan Enter saat thread dipilih untuk meluaskan atau menciutkan thread.
- Pilih thread untuk melihat informasi tambahan di Analysis pane. Tahan Shift atau Ctrl (Command di Mac) untuk memilih beberapa thread.
- Pilih panggilan metode (atau peristiwa rekaman aktivitas di System Trace) untuk melihat informasi tambahan di panel Analysis.
- Analysis pane: Menampilkan data rekaman aktivitas untuk rentang waktu dan thread atau panggilan metode yang telah Anda pilih. Di panel ini, Anda dapat memilih cara melihat setiap stack trace (menggunakan tab analisis) dan cara mengukur waktu eksekusi (menggunakan menu dropdown referensi waktu).
- Analysis pane tabs: Pilih cara menampilkan detail rekaman aktivitas. Untuk mengetahui detail tentang setiap opsi, lihat Memeriksa rekaman aktivitas.
- Time reference menu: Pilih salah satu opsi berikut untuk menentukan cara
pengukuran informasi pengaturan waktu untuk setiap panggilan (hanya didukung di Sample/Trace
Java Methods):
- Wall clock time: Informasi pengaturan waktu yang menyatakan waktu berlalu yang sebenarnya.
- Thread time: Informasi pengaturan waktu yang menyatakan waktu berlalu yang sebenarnya, dikurangi setiap bagian waktu tersebut ketika thread tidak memakai resource CPU. Untuk panggilan tertentu, waktu thread-nya selalu kurang dari atau sama dengan waktu jam dindingnya (wall clock time). Menggunakan waktu thread akan memberikan pemahaman yang lebih baik tentang banyaknya penggunaan CPU sesungguhnya oleh sebuah thread melalui metode atau fungsi tertentu.
-
Filter: Memfilter data perekaman aktivitas menurut nama fungsi, metode, class, atau
paket. Misalnya, jika Anda ingin mengidentifikasi data rekaman aktivitas terkait
panggilan tertentu dengan cepat, ketik nama di kolom
penelusuran. Di tab Flame chart, stack panggilan
yang menyertakan panggilan, paket, atau kelas yang cocok dengan kueri penelusuran
akan ditekankan. Di tab Top down dan Bottom up, stack panggilan
tersebut akan lebih diprioritaskan daripada hasil rekaman aktivitas lainnya. Anda juga dapat mengaktifkan
opsi berikut dengan mencentang kotak yang sesuai di samping kolom penelusuran:
- Regex: Untuk menyertakan ekspresi reguler dalam penelusuran, gunakan opsi ini.
- Match case: Jika penelusuran Anda peka dengan huruf besar kecil, gunakan opsi ini.
- Memperbesar: Tekan W atau scroll roda mouse sambil menahan Ctrl (Command di Mac).
- Perkecil: Tekan S atau scroll roda mouse ke belakang sambil menahan Ctrl (Command di Mac).
- Menggeser ke kiri: Tekan A atau tarik mouse ke kanan sambil menahan Spasi.
- Menggeser ke kanan: Tekan D atau tarik mouse ke kiri sambil menahan Spasi.
- Meluaskan atau menciutkan thread: Klik dua kali nama thread atau tekan Enter saat thread dipilih.
Memilih konfigurasi perekaman
Sebelum mulai merekam informasi aktivitas, pilih konfigurasi perekaman yang sesuai untuk informasi profiling yang ingin direkam:
- Sample Java Methods: Merekam stack panggilan aplikasi dalam interval yang
sering selama eksekusi kode berbasis Java milik aplikasi Anda. Profiler akan membandingkan
kumpulan data yang direkam untuk memperoleh informasi pengaturan waktu dan penggunaan resource mengenai
eksekusi kode berbasis Java milik aplikasi Anda.
Masalah inheren dari perekaman aktivitas berbasis sampel adalah jika aplikasi Anda masuk ke suatu metode setelah perekaman stack panggilan selesai, dan aplikasi keluar dari metode tersebut sebelum perekaman berikutnya, panggilan metode tersebut tidak akan dicatat dalam log oleh profiler. Jika Anda memang ingin merekam aktivitas metode dengan siklus yang singkat seperti ini, gunakan perekaman aktivitas berinstrumen.
- Trace Java Methods: Melengkapi aplikasi pada waktu proses untuk merekam
stempel waktu di awal dan akhir setiap panggilan metode. Stempel waktu
dikumpulkan dan dibandingkan untuk menghasilkan data perekaman aktivitas metode, termasuk informasi
pengaturan waktu dan penggunaan CPU.
Perlu diketahui bahwa overhead yang terkait dengan melengkapi setiap metode akan memengaruhi performa waktu proses dan dapat memengaruhi data profiling; hal ini bahkan lebih jelas untuk metode yang siklusnya relatif singkat. Selain itu, jika aplikasi mengeksekusi sejumlah besar metode dalam waktu singkat, profiler mungkin akan melampaui batas ukuran filenya dan mungkin tidak dapat merekam data aktivitas lebih lanjut.
- Sample C/C++ Functions: Merekam aktivitas dengan sampel dari thread native
aplikasi. Untuk menggunakan konfigurasi ini, Anda harus men-deploy aplikasi ke perangkat
yang menjalankan Android 8.0 (API level 26) atau versi yang lebih tinggi.
Secara internal, konfigurasi ini menggunakan
simpleperf
untuk merekam aktivitas kode native aplikasi Anda. Jika ingin menentukan opsi tambahan untuksimpleperf
, seperti pengambilan sampel CPU perangkat tertentu atau menentukan durasi pengambilan sampel pada akurasi tinggi, Anda dapat menggunakansimpleperf
dari command line. - Trace System Calls: Merekam detail akurat yang memungkinkan Anda
memeriksa cara aplikasi berinteraksi dengan resource sistem. Anda dapat memeriksa pengaturan
waktu dan durasi tepat status thread, memvisualkan bottleneck
CPU di seluruh core, dan menambahkan peristiwa perekaman aktivitas khusus untuk dianalisis.
Informasi tersebut bisa menjadi sangat penting saat Anda perlu memecahkan masalah
performa. Untuk menggunakan konfigurasi ini, Anda harus men-deploy aplikasi ke perangkat
yang menjalankan Android 7.0 (API level 24) atau versi yang lebih tinggi.
Saat menggunakan konfigurasi perekaman aktivitas ini, Anda dapat menandai rutinitas kode penting secara visual dalam linimasa profiler dengan melengkapi kode Anda. Untuk melengkapi kode C/C++, gunakan API perekaman aktivitas native yang disediakan oleh
trace.h
. Untuk melengkapi kode Java, gunakan classTrace
. Untuk mengetahui informasi selengkapnya, lihat Melengkapi kode aplikasi Anda.Konfigurasi perekaman aktivitas ini di-build berdasarkan
systrace
. Anda dapat menggunakan utilitas command linesystrace
untuk menentukan opsi di luar yang disediakan di CPU Profiler. Data level sistem tambahan yang disediakan olehsystrace
dapat membantu Anda memeriksa proses sistem native dan memecahkan masalah frame yang menurun atau tertunda.Di perangkat yang menjalankan Android 9 (API level 28) atau yang lebih baru, Anda bisa menggunakan aplikasi sistem yang bernama Pelacakan Sistem untuk merekam aktivitas sistem di perangkat.
Membuat, mengedit, atau menampilkan konfigurasi perekaman
Anda dapat membuat, mengedit, dan menampilkan konfigurasi perekaman dalam dialog CPU Recording Configurations yang dapat dibuka dengan memilih Edit configurations dari menu drop-down konfigurasi perekaman di bagian atas CPU Profiler.
Untuk menampilkan setelan konfigurasi perekaman saat ini, pilih setelan di panel kiri dialog CPU Recording Configurations.
Untuk membuat konfigurasi perekaman baru, lakukan langkah berikut:
- Klik Add di bagian kiri atas dialog. Opsi ini akan membuat konfigurasi baru dengan beberapa setelan default.
- Beri nama konfigurasi Anda.
- Pilih Trace Technology.
- Untuk konfigurasi perekaman dengan sampel, tentukan Sampling interval dalam mikrodetik (μs). Nilai ini menyatakan waktu di antara setiap sampel stack panggilan aplikasi Anda. Semakin pendek interval yang ditentukan, semakin cepat Anda mencapai batas ukuran file untuk data yang direkam.
- Tentukan File size limit dalam megabyte (MB) untuk data terekam
yang ditulis ke perangkat yang terhubung. Saat Anda berhenti merekam, Android
Studio akan mengurai data ini dan menampilkannya di jendela profiler. Jadi, jika Anda
menaikkan batasnya dan merekam data dalam jumlah besar, Android Studio membutuhkan
waktu lebih lama untuk mengurai file dan dapat berhenti merespons.
Catatan: Jika menggunakan perangkat terhubung yang menjalankan Android 8.0 (API level 26) atau lebih tinggi, tidak ada batas ukuran file untuk data perekaman aktivitas, dan nilai ini akan diabaikan. Namun, Anda masih harus berhati-hati tentang berapa banyak data yang dikumpulkan perangkat setelah setiap sesi perekaman; Android Studio mungkin mengalami kesulitan dalam menguraikan file rekaman aktivitas berukuran besar. Misalnya, jika merekam aktivitas dengan sampel dalam interval pengambilan sampel yang singkat atau merekam aktivitas yang diinstrumentasi saat aplikasi memanggil banyak metode dalam waktu singkat, Anda akan dengan cepat menghasilkan file rekaman aktivitas yang berukuran besar.
- Untuk menerima perubahan dan melanjutkan perubahan pada konfigurasi lain, klik Apply. Untuk menyetujui semua perubahan yang diterapkan dan menutup dialog, klik OK.
Merekam aktivitas CPU dengan Debug API
Anda dapat menggunakan Debug
API agar aplikasi
dapat memulai dan menghentikan perekaman aktivitas CPU di CPU Profiler.
CPU Profiler memulai perekaman saat aplikasi Anda memanggil
startMethodTracing(String tracePath)
,
dan CPU Profiler berhenti merekam saat aplikasi memanggil
stopMethodTracing()
. Selagi
merekam aktivitas CPU yang dipicu menggunakan API ini, CPU profiler akan menampilkan
Debug API sebagai konfigurasi perekaman CPU saat ini.
Untuk mengontrol perekaman aktivitas CPU dengan Debug
API, deploy aplikasi
yang diinstrumentasi ke perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih tinggi.
Perekaman yang dimulai API didukung di aplikasi yang dapat dibuat profil, tetapi profiler
Android Studio memerlukan aplikasi yang dapat di-debug untuk menampilkan status perekaman di UI.
Penting:
Debug
API ditujukan untuk penggunaan di luar cara yang telah disediakan
untuk memulai dan menghentikan perekaman aktivitas CPU, seperti tombol pada
antarmuka pengguna grafis (GUI) CPU Profiler dan setelan dalam konfigurasi
perekaman untuk perekaman otomatis saat aplikasi dimulai.
Karena batas ukuran buffer sebesar 8 MB, metode
startMethodTracing(String tracePath)
di
Debug
API didesain untuk interval atau skenario pendek yang
sulit memulai/menghentikan perekaman secara manual. Untuk rekaman waktu yang lebih lama, gunakan
UI profiler di Android Studio.
Untuk mengetahui informasi selengkapnya, lihat Menghasilkan log perekaman aktivitas dengan melengkapi aplikasi Anda.
Merekam aktivitas CPU saat aplikasi dimulai
Untuk otomatis memulai perekaman aktivitas CPU saat aplikasi dimulai, lakukan hal berikut:
- Pilih Run > Edit Configurations.
- Di tab Profiling, centang kotak di samping Start recording a method trace on startup.
- Pilih konfigurasi perekaman CPU dari menu.
- Klik Apply.
- Deploy aplikasi Anda ke perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih baru dengan memilih Run > Profile.