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
:
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 filter_list, 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 close 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:
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
:
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
:
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.
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:
Berikut grafik yang sama dengan penyorotan yang diminta untuk fungsi baz
:
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
:
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:
Langkah selanjutnya
- Fokuskan grafik api pada suatu fungsi.
- Melihat tren historis.
- Bandingkan profil.
- Download data profil.