Memfilter grafik flame

Dengan Cloud Profiler, Anda dapat menambahkan filter untuk mengontrol tampilan informasi dalam profil yang dipilih. Misalnya, Anda dapat menambahkan filter untuk menyembunyikan frame atau stack panggilan tertentu. Menambah dan menghapus filter tidak akan mengubah kumpulan profil yang dipilih.

Setiap filter ditentukan oleh FILTER-OPTION yang telah ditentukan dan 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 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 Filters , pilih opsi dari daftar, lalu masukkan nilainya.
  • Klik teks abu-abu Add profile data filter di panel filter, lalu masukkan opsi dan nilai filter.
  • Untuk opsi filter Focus, Show from frame, dan Show stacks, Anda juga dapat menempatkan pointer pada frame, lalu memilih opsi dari tooltip frame.

Untuk menghapus filter, klik Tutup di filter.

Saat menyiapkan data yang akan ditampilkan, Profiler menelusuri kecocokan antara frame dan filter. Saat terjadi kecocokan, Profiler akan 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 Hide frames : oo, frame dengan fungsi bernama foo, foo1, dan busyloop yang cocok akan disembunyikan dari grafik flame.

Metrik

Untuk menetapkan mode agregasi jenis profil, gunakan filter Metrik. Misalnya, jika memilih jenis profil Heap, Anda dapat memilih untuk memvisualisasikan data dalam ukuran Bytes dan Objects.

Pilihan yang tersedia untuk filter Metric bergantung pada bahasa pemrograman dan Profile type yang dipilih:

  • Untuk profil waktu CPU, satu-satunya pilihan adalah waktu CPU.
  • Untuk profil Heap, pilihannya adalah:

    • Byte
    • Objek
  • Untuk profil Dialokasikan Heap, pilihannya adalah:

    • Total byte alokasi
    • Total objek alokasi
  • Untuk profil Wall time, pilihannya adalah:

    • Jumlah
    • Waktu dinding
  • Untuk profil Threads, satu-satunya pilihan adalah Goroutine.

  • Untuk profil Pertentangan, pilihannya adalah:

    • Penundaan
    • Pertentangan

Untuk informasi selengkapnya tentang jenis metrik pembuatan profil, lihat Konsep pembuatan profil.

Misalnya, screenshot berikut menampilkan konsumsi CPU suatu program:

Grafik profiler untuk penggunaan CPU

Di sini, Anda dapat melihat bahwa rutinitas busyloop memanggil foo1 dan foo2, yang keduanya memanggil berbagai rutinitas lainnya. Anda dapat menambahkan filter untuk lebih membatasi grafik hanya pada data yang diinginkan.

Fokus

Saat menggunakan filter Focus, Anda memilih satu fungsi dan grafik flame akan menampilkan jalur kode yang mengalir ke dalam dan ke luar, fungsi tertentu.

Untuk mengetahui detail tentang cara memfokuskan grafik dan menafsirkan hasilnya, lihat Memfokuskan grafik flame.

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 ini menampilkan pemanggil dan tujuan panggilan fungsi, yaitu semua yang memanggil fungsi pencocokan, dan semua yang dipanggilnya.

Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan 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 Show stacks untuk foo1:

Grafik profiler untuk penggunaan CPU difilter dengan menampilkan stack

Sembunyikan stack

Menyembunyikan semua stack panggilan yang berisi frame yang cocok dengan nilai filter. Filter ini sering kali berguna jika Anda ingin menyembunyikan stack yang tidak menarik. Misalnya, pada aplikasi Java, menambahkan filter Hide stacks: unsafe.park adalah hal yang umum.

Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan 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 Show from frame. Grafik yang dihasilkan menunjukkan 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 difilter dengan tampilkan dari frame

Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan terjadi jika fungsi frame berisi nilai filter.

Sembunyikan frame

Untuk menyembunyikan dari tampilan semua frame yang cocok dengan nilai filter, gunakan filter Sembunyikan frame. Grafik ini menunjukkan pemanggil fungsi, dan tujuan panggilan fungsi tersebut dikumpulkan bersama. Filter ini berguna untuk menghapus frame yang tidak relevan dari grafik.

Misalnya, untuk menyembunyikan frame bagi foo1 dan foo2, tetapkan filter Hide frames untuk foo. foo1 dan foo2 cocok, sehingga keduanya dihapus dari grafik. Karena keduanya memanggil rutinitas bar dan baz, data untuk setiap fungsi tersebut akan diagregasi bersama.

Grafik profiler untuk penggunaan CPU difilter dengan frame sembunyikan

Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan terjadi jika fungsi frame berisi nilai filter.

Sorot

Untuk menandai semua frame yang nama fungsinya cocok dengan nilai filter, gunakan filter Highlight. Fungsi ini tetap dalam mode warna normal, tetapi urutan panggilan diberi warna dengan warna yang lebih lembut.

Misalnya, berikut ini grafik tanpa sorotan:

Membuat profil grafik tanpa penyorotan

Berikut grafik yang sama dengan penyorotan yang diminta untuk fungsi baz:

Membuat profil grafik dengan penyorotan

Filter ini melakukan pengujian substring yang peka huruf besar/kecil. Pencocokan terjadi jika fungsi frame berisi nilai filter.

Mode warna

Secara default, warna frame, jika memungkinkan, sesuai dengan paket fungsi. Jika informasi paket tidak tersedia, seperti pada 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 grafik flame berdasarkan penggunaan fungsi dan turunannya, tambahkan filter Mode warna dengan nilai Total. Jika fungsi dipanggil melalui beberapa stack panggilan, warna akan ditentukan oleh konsumsi metrik untuk semua stack panggilan. Misalnya, main dan busyloop berwarna merah. Kedua {i>frame<i} ini paling banyak menghabiskan waktu CPU. Frame berlabel foo2 dan baz berwarna oranye tua, sedangkan frame berlabel foo1 berwarna oranye yang lebih terang. Frame untuk bar dan load adalah yang paling ringan. Grafik flame ini mengilustrasikan bahwa foo2 menggunakan lebih banyak waktu CPU daripada foo1, tetapi kurang dari busyloop:

Total mode warna

Untuk mewarnai frame dalam grafik flame menurut penggunaan metrik fungsi, tetapi mengecualikan konsumsi metrik turunannya, tambahkan filter Mode warna dengan nilai Self. Misalnya, filter ini menunjukkan bahwa fungsi baz menggunakan lebih banyak waktu CPU daripada fungsi lainnya:

Mode warna mandiri

Langkah selanjutnya