Bagikan melalui


Laporan-laporan tampilan thread di Visualizer Konkuren

Artikel ini menyediakan informasi tentang laporan dalam tampilan Threads di Concurrency Visualizer.

Memblokir laporan profil waktu

Laporan Profil menyediakan data waktu pemblokiran agregat untuk tumpukan panggilan yang khusus untuk setiap kategori pemblokiran (misalnya "I/O" atau "Sinkronisasi"). Laporan Preemption mencantumkan proses yang menginterupsi proses saat ini, beserta dengan jumlah kejadian preemption. Untuk membangun laporan profil pemblokiran, alat ini mengumpulkan panggilan API yang diblokir dan mengakumulasikannya menjadi pohon tumpukan panggilan. Data yang ditampilkan dalam laporan ini bervariasi berdasarkan rentang waktu saat ini, utas tersembunyi, serta dua filter berikut yang dapat diterapkan:

  • Jika Hanya Kode Saya yang dipilih, hanya frame tumpukan yang memiliki kode pengguna yang ditampilkan, ditambah satu tingkat di bawah kode pengguna.

  • Jika nilai Pengurangan kebisingan diatur, tumpukan yang terkoordinasi yang memiliki frekuensi kurang dari yang ditentukan dilewati.

    Perluas entri pohon panggilan apa pun untuk menemukan baris kode di mana waktu pemblokiran dihabiskan. Untuk menemukan baris sumber untuk entri, pada menu pintasannya, pilih Tampilkan Sumber. Untuk menemukan baris kode yang memanggil kode ini, pada menu pintasan, pilih Tampilkan Lokasi Panggilan. Jika hanya satu situs panggilan yang tersedia, perintah akan tersambung ke baris kode yang disorot untuk situs panggilan. Jika beberapa situs panggilan tersedia, perintah membuka kotak dialog tempat Anda bisa memilih entri lalu pilih tombol Buka sumber untuk menemukan situs panggilan yang disorot. Seringkali paling berguna untuk melihat kode sumber untuk situs panggilan yang memiliki instans terbanyak, paling banyak waktu, atau keduanya.

Memblokir kolom laporan waktu

Tabel berikut ini memperlihatkan kolom untuk setiap laporan waktu pemblokiran.

Nama kolom Description
Nama Nama fungsi untuk setiap tingkat tumpukan panggilan.
Instans Jumlah kejadian panggilan pemblokiran untuk periode waktu tampak.
Waktu Pemblokiran Inklusif Total waktu pemblokiran yang dihabiskan untuk semua tumpukan yang digulung ke tingkat pohon tumpukan panggilan ini. Angka inklusif adalah jumlah dari waktu pemblokiran eksklusif untuk fungsi ini dan waktu pemblokiran eksklusif untuk semua simpul anak dari fungsi tersebut.
Waktu Pemblokiran Eksklusif Waktu total pemblokiran yang dihabiskan ketika fungsi ini berada pada tingkat terendah dari tumpukan panggilan. Entri tumpukan panggilan unik yang memiliki waktu pemblokiran eksklusif yang tinggi mungkin merupakan fungsi yang menarik.
Kategori API/Menunggu Ditampilkan hanya untuk fungsi pada tingkat terendah tumpukan panggilan. Di mana tanda tangan panggilan pemblokiran dikenali, nama API pemblokiran disediakan. Jika tanda tangan tidak dikenali, informasi yang dilaporkan oleh kernel akan disediakan.
Rincian Nama fungsi yang sepenuhnya memenuhi syarat. Ini termasuk jumlah baris saat tersedia.

Synchronization

Laporan Sinkronisasi menunjukkan panggilan yang bertanggung jawab atas segmen yang memblokir sinkronisasi, dan waktu pemblokiran agregat dari setiap tumpukan panggilan. Untuk informasi selengkapnya, lihat Waktu sinkronisasi.

Tidur

Laporan Tidur menunjukkan panggilan yang bertanggung jawab untuk memblokir waktu yang dikaitkan dengan waktu yang dihabiskan untuk tidur, serta total waktu pemblokiran dari setiap rangkaian panggilan. Untuk informasi selengkapnya, lihat Waktu tidur.

I/O

Laporan I/O menunjukkan panggilan yang bertanggung jawab atas segmen yang memblokir I/O, dan agregat waktu pemblokiran dari setiap tumpukan panggilan. Untuk informasi selengkapnya, lihat Waktu I/O (tampilan utas).

Manajemen memori

Laporan Manajemen Memori menunjukkan panggilan yang bertanggung jawab atas segmen yang memblokir operasi manajemen memori, dan waktu pemblokiran agregat dari setiap tumpukan panggilan. Untuk informasi selengkapnya, lihat Waktu manajemen memori.

Pendahuluan

Laporan Preemption mencantumkan proses yang menginterupsi proses saat ini bersama dengan jumlah kejadian. Anda dapat memperluas setiap proses untuk melihat utas tertentu yang menggantikan utas lainnya dalam proses yang sama saat ini dan untuk melihat perincian instans penghentian sementara per utas. Laporan pemblokiran ini kurang dapat ditindaklanjuti daripada yang lain karena preemption biasanya dikenakan pada proses Anda oleh sistem operasi, bukan oleh masalah dalam kode Anda. Untuk informasi selengkapnya, lihat Waktu pendahuluan.

Pemrosesan UI

Laporan Pemrosesan UI menunjukkan panggilan yang menyebabkan segmen terblokir dalam blok pemrosesan UI, serta waktu pemblokiran total dari setiap tumpukan panggilan. Untuk informasi selengkapnya, lihat Waktu pemrosesan UI.

Laporan Operasi Disk (Tampilan Utas)

Laporan Operasi Disk menunjukkan operasi I/O disk di saluran disk.

Untuk setiap akses disk yang terjadi atas nama proses yang sedang diprofilkan di jendela waktu yang terlihat saat ini, informasi ini dilaporkan:

  • Nama dan PID proses yang melakukan akses disk

  • ID utas yang mengakses disk

  • Nama file yang diakses

  • Jumlah bacaan per file

  • Jumlah byte yang dibaca

  • Latensi baca, dalam milidetik

  • Jumlah penulisan

  • Jumlah byte yang ditulis

  • Latensi tulis, dalam milidetik

Laporan Profil Pelaksanaan

Laporan Profil Eksekusi adalah profil pengambilan sampel tradisional. Sampel diambil kira-kira setiap milidetik selama periode ketika utas berjalan pada inti logis, dan Visualizer Konkurensi membangun pohon panggilan umum dengan menyusun kumpulan tumpukan sampel yang terakumulasi. Data pada tabel ini dapat dipengaruhi oleh rentang waktu terkini dan utas tersembunyi, serta oleh filter berikut yang dapat diterapkan:

  • Jika "Just My Code" dipilih, hanya frame stack yang memiliki kode pengguna, ditambah satu level di bawah kode pengguna, yang akan ditampilkan.

  • Jika nilai Pengurangan kebisingan diatur, tumpukan yang disusun yang memiliki kurang dari frekuensi yang ditentukan difilter dari laporan

    Tabel berikut ini memperlihatkan kolom dalam laporan.

kolom Description
Nama Nama fungsi untuk setiap tingkat tumpukan panggilan.
Contoh inklusif Jumlah total sampel yang dikumpulkan untuk semua tumpukan yang digulung ke tingkat pohon tumpukan panggilan ini. Jumlah inklusif adalah hasil penjumlahan dari sampel eksklusif untuk fungsi ini dan penghitung inklusif untuk semua simpul turunannya.
Sampel Eksklusif Jumlah total sampel yang dikumpulkan, di mana fungsi ini berada pada tingkat terendah dari tumpukan panggilan.
% Inklusif Persentase total sampel yang ditampilkan di kolom sampel inklusif. Persentase dibulatkan ke dua tempat desimal.
% Eksklusif Persentase total sampel yang ditampilkan di kolom sampel eksklusif. Persentase dibulatkan ke dua tempat desimal.
Detail lebih lanjut Nama fungsi yang sepenuhnya memenuhi syarat. Ini termasuk jumlah baris saat tersedia.

Tabel laporan ini dapat dilihat dalam tampilan Waktu Eksekusi (Tampilan Utas).

Laporan Marka

Laporan Penanda mencantumkan penanda dalam rentang waktu yang ditampilkan. Menggeser atau memperbesar, atau menyembunyikan jalur, dapat menyebabkan penanda muncul atau menghilang. Laporan berisi informasi ini tentang setiap penanda:

  • Waktu saat dimulai, relatif terhadap awal pelacakan.

  • Durasinya. Durasi adalah nol untuk bendera dan pesan karena mewakili momen sesaat.

  • ID utas dari thread yang menghasilkannya.

  • Penyedia Pelacakan Peristiwa untuk Windows (ETW) yang menghasilkannya.

  • Seri penanda dari mana ia ditulis.

  • Kategori peristiwa yang dimasukinya.

  • Tingkat kepentingannya.

  • Jenisnya (rentang, bendera, atau pesan).

  • Deskripsi tingkat tinggi tentang apa yang diwakilinya

    Pilih tombol Ekspor untuk menyimpan Laporan Penanda sebagai file CSV. Anda dapat menggunakan data dalam file CSV dengan aplikasi atau alat lain.

Nota

Laporan Penanda dapat menampilkan 1.000 penanda. Untuk melihat semua penanda, ekspor laporan lengkap ke file CSV.

Laporan ringkasan per utas

Grafik batang ini menunjukkan proporsi waktu yang dihabiskan setiap utas yang tidak disembunyikan dalam setiap kategori aktivitas selama rentang waktu yang saat ini terlihat. "Eksekusi" berarti bahwa utas sedang dijalankan; semua kategori lainnya berarti bahwa utas sedang menunggu sesuatu.