Merekam aktivitas

Untuk mulai merekam aktivitas, pilih konfigurasi rekaman dari menu dropdown di atas atau di bawah CPU Profiler dan klik Record.

Gambar 1. CPU Profiler menampilkan status, durasi, dan jenis rekaman yang sedang dibuat.

Lakukan sesuatu dengan aplikasi, lalu klik Stop setelah selesai. Profiler otomatis menampilkan informasi pelacakannya pada panel rekaman aktivitas, seperti yang ditunjukkan pada Gambar 2.

Gambar 2. CPU Profiler setelah merekam pelacakan metode.

  1. 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.
  2. Interaction section: Menampilkan interaksi pengguna dan peristiwa siklus proses aplikasi di sepanjang linimasa.
  3. 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.
  4. 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).
  5. Analysis pane tabs: Pilih cara menampilkan detail rekaman aktivitas. Untuk mengetahui detail tentang setiap opsi, lihat Memeriksa rekaman aktivitas.
  6. 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.
  7. 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.
Tips: Saat memeriksa linimasa Threads, tersedia pintasan berikut:
  • 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 untuk simpleperf, seperti pengambilan sampel CPU perangkat tertentu atau menentukan durasi pengambilan sampel pada akurasi tinggi, Anda dapat menggunakan simpleperf 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 class Trace. Untuk mengetahui informasi selengkapnya, lihat Melengkapi kode aplikasi Anda.

    Konfigurasi perekaman aktivitas ini di-build berdasarkan systrace. Anda dapat menggunakan utilitas command line systrace untuk menentukan opsi di luar yang disediakan di CPU Profiler. Data level sistem tambahan yang disediakan oleh systrace 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:

  1. Klik Add di bagian kiri atas dialog. Opsi ini akan membuat konfigurasi baru dengan beberapa setelan default.
  2. Beri nama konfigurasi Anda.
  3. Pilih Trace Technology.
  4. 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.
  5. 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.

  6. 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:

  1. Pilih Run > Edit Configurations.
  2. Di tab Profiling, centang kotak di samping Start recording a method trace on startup.
  3. Pilih konfigurasi perekaman CPU dari menu.
  4. Klik Apply.
  5. Deploy aplikasi Anda ke perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih baru dengan memilih Run > Profile.