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:

Menampilkan filter dengan opsi metrik dan nilai byte.

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 , 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 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:

Grafik profiler untuk penggunaan CPU

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:

Grafik profiler untuk penggunaan CPU yang difilter dengan menampilkan stack

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:

Grafik profiler untuk penggunaan CPU yang difilter dengan tampilan dari frame

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.

Grafik profiler untuk penggunaan CPU yang difilter dengan frame tersembunyi

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:

Membuat profil grafik tanpa sorotan

Berikut adalah grafik yang sama dengan sorotan yang diminta untuk fungsi baz:

Membuat profil grafik dengan sorotan

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:

Total mode warna

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:

Mode warna mandiri

Langkah selanjutnya