Memfilter grafik flame
Cloud Profiler memungkinkan Anda menambahkan filter untuk mengontrol cara informasi dalam profil yang dipilih ditampilkan. Misalnya, Anda dapat menambahkan filter untuk menyembunyikan frame atau stack panggilan tertentu. Menambahkan dan menghapus filter tidak akan mengubah kumpulan profil yang dipilih.
Setiap filter ditentukan oleh FILTER-OPTION
standar yang disambungkan
dengan VALUE
yang ditentukan pengguna:
[FILTER-OPTION] : [VALUE]
Setiap filter yang Anda tambahkan akan ditampilkan di panel filter.
Dalam contoh ini, ada satu filter yang menampilkan Metric : Bytes
:
Profiler akan otomatis membuat filter dengan
FILTER-OPTION
Metric
dan VALUE
berdasarkan jenis profil yang Anda pilih.
Anda dapat mengubah VALUE
untuk beberapa jenis profil. Anda tidak dapat menghapus filter ini.
Untuk menambahkan filter, gunakan salah satu pendekatan berikut:
- Klik Filter filter_list, pilih opsi dari daftar, lalu masukkan nilai.
- Klik teks abu-abu Tambahkan filter data profil di panel filter, lalu masukkan opsi dan nilai filter.
- Untuk opsi filter Fokus, Tampilkan dari frame, dan Tampilkan kelompok, Anda juga dapat menempatkan kursor pada frame, lalu memilih opsi dari tooltip frame.
Untuk menghapus filter, klik Tutup close pada filter.
Saat menyiapkan data untuk ditampilkan, Profiler akan menelusuri
kecocokan antara frame dan filter.
Saat kecocokan terjadi, Profiler menggunakan FILTER-OPTION
untuk
menentukan tindakan yang akan dijalankan. Frame cocok dengan filter jika nama fungsi
frame atau nama file sumber fungsi berisi VALUE
.
Perbandingan peka huruf besar/kecil dilakukan.
Misalnya, jika filternya adalah Hide frames : oo
, frame dengan fungsi bernama foo
, foo1
, dan busyloop
yang cocok akan disembunyikan dari flame graph.
Metrik
Untuk menetapkan mode agregasi jenis profil, gunakan filter Metrik. Misalnya, jika memilih jenis profil Heap, Anda memiliki pilihan antara memvisualisasikan data dalam hal Byte dan Objek.
Pilihan yang tersedia untuk filter Metrik bergantung pada bahasa pemrograman dan Jenis profil yang dipilih:
- Untuk profil CPU time, satu-satunya pilihan adalah CPU time.
Untuk profil Heap, pilihannya adalah:
- Byte
- Objek
Untuk profil Allocated Heap, pilihannya adalah:
- Total byte alokasi
- Total objek alloc
Untuk profil Waktu dinding, pilihannya adalah:
- Jumlah
- Waktu proses
Untuk profil Threads, satu-satunya pilihan adalah Goroutine.
Untuk profil Contention, pilihannya adalah:
- Penundaan
- Pertentangan
Untuk informasi selengkapnya tentang jenis metrik pembuatan profil, lihat Konsep pembuatan profil.
Misalnya, screenshot berikut menunjukkan penggunaan CPU program:
Di sini, Anda dapat melihat bahwa rutinitas busyloop
memanggil foo1
dan foo2
, yang
memanggil berbagai rutinitas lainnya. Anda dapat menambahkan filter untuk lebih
membatasi grafik hanya ke data yang diinginkan.
Fokus
Saat menggunakan filter Fokus, Anda memilih satu fungsi dan grafik flame menampilkan jalur kode yang mengalir ke dalam, dan keluar dari, fungsi tertentu tersebut.
Untuk mengetahui detail cara memfokuskan grafik dan menafsirkan hasilnya, lihat Memfokuskan grafik percik api.
Tampilkan stack
Untuk menampilkan semua stack panggilan yang berisi frame yang cocok dengan nilai filter dan untuk menyembunyikan semua stack panggilan lainnya, gunakan filter Tampilkan stack. Grafik menunjukkan pemanggil dan yang dipanggil dari fungsi, yaitu, semua yang memanggil fungsi yang cocok, dan semua yang dipanggilnya.
Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan akan terjadi jika fungsi frame berisi nilai filter.
Untuk membatasi grafik penggunaan CPU dari contoh sebelumnya agar hanya menampilkan
stack panggilan yang melibatkan fungsi foo1
, tetapkan
filter Tampilkan stack untuk foo1
:
Sembunyikan stack
Sembunyikan semua stack panggilan yang berisi frame yang cocok dengan nilai filter. Filter
ini sering kali berguna saat Anda ingin menyembunyikan stack yang tidak menarik. Misalnya, dengan aplikasi Java, menambahkan filter Hide stacks: unsafe.park
adalah hal yang umum.
Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan akan terjadi jika fungsi frame berisi nilai filter.
Tampilkan dari frame
Untuk menampilkan semua stack panggilan, mulai dari frame yang cocok dengan nilai filter dan untuk menyembunyikan semua stack panggilan lainnya, gunakan filter Tampilkan dari frame. Grafik yang dihasilkan menampilkan stack panggilan dari fungsi bernama ke bawah. Filter ini berguna jika fungsi Anda dipanggil dari banyak tempat, dan Anda ingin melihat total konsumsi yang diatribusikan ke fungsi tersebut.
Misalnya, untuk hanya menampilkan panggilan yang berasal dari fungsi baz
,
tetapkan filter Tampilkan dari frame untuk baz
:
Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan akan terjadi jika fungsi frame berisi nilai filter.
Sembunyikan frame
Untuk menyembunyikan semua frame yang cocok dengan nilai filter, gunakan filter Sembunyikan frame. Grafik menunjukkan pemanggil fungsi, dan setiap pemanggil fungsi dikumpulkan bersama. Filter ini berguna untuk menghapus frame yang tidak relevan dari grafik.
Misalnya, untuk menyembunyikan frame untuk foo1
dan foo2
, tetapkan
filter Sembunyikan frame untuk foo
. foo1
dan foo2
cocok, sehingga keduanya
dihapus dari grafik. Karena keduanya memanggil rutinitas bar
dan baz
, data untuk setiap fungsi tersebut digabungkan.
Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan akan terjadi jika fungsi frame berisi nilai filter.
Sorotan
Untuk menandai semua frame yang nama fungsinya cocok dengan nilai filter, gunakan filter Tandai. Fungsi tetap dalam mode warna normal, tetapi urutan panggilan diwarnai dengan warna yang lebih redup.
Misalnya, berikut adalah grafik tanpa sorotan:
Berikut adalah grafik yang sama dengan sorotan yang diminta untuk fungsi baz
:
Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan akan terjadi jika fungsi frame berisi nilai filter.
Mode warna
Secara default, warna bingkai sesuai, jika memungkinkan, dengan paket fungsi. Jika informasi paket tidak tersedia, seperti halnya Node.js, nama file sumber akan digunakan untuk mewarnai blok fungsi. Dengan setelan default, perubahan warna frame stack panggilan berarti transisi dari satu paket ke paket lainnya. Opsi default sesuai dengan filter Mode warna dengan nilai Nama.
Untuk mewarnai frame dalam flame graph berdasarkan penggunaan fungsi dan turunannya, tambahkan filter Mode warna dengan nilai Total. Jika fungsi dipanggil melalui beberapa stack panggilan, warna ditentukan oleh penggunaan metrik untuk semua stack panggilan.
Misalnya, main
dan busyloop
berwarna merah. Kedua frame ini menghabiskan
waktu CPU paling banyak. Frame yang berlabel foo2
dan baz
berwarna oranye tua,
sedangkan frame yang berlabel foo1
berwarna oranye lebih terang. Frame untuk bar
dan
load
adalah yang paling ringan. Grafik api ini mengilustrasikan bahwa foo2
menghabiskan lebih banyak
waktu CPU daripada foo1
, tetapi kurang dari busyloop
:
Untuk mewarnai frame dalam flame graph berdasarkan penggunaan metrik fungsi, tetapi mengecualikan penggunaan metrik turunannya, tambahkan filter Mode warna dengan nilai Sendiri.
Misalnya, filter ini menunjukkan bahwa
fungsi baz
menghabiskan lebih banyak waktu CPU daripada fungsi lainnya:
Langkah selanjutnya
- Memfokuskan flame graph pada fungsi.
- Melihat tren historis.
- Membandingkan profil.
- Download data profil.