Bagikan melalui


Penampil Peristiwa

Di Profiler Performa, Anda dapat mengumpulkan info diagnostik saat aplikasi berjalan, lalu memeriksa informasi yang dikumpulkan setelah aplikasi berhenti seperti analisis pasca-mortem.

Penampil peristiwa generik menunjukkan aktivitas aplikasi melalui daftar peristiwa seperti beban modul, mulai utas, dan konfigurasi sistem. Tampilan ini membantu Anda mendiagnosis dengan lebih baik bagaimana performa aplikasi Anda dalam profiler Visual Studio.

Siapkan

  1. Pilih Alt+F2 untuk membuka Performance Profiler di Visual Studio.

  2. Pilih kotak centang Penampil Peristiwa.

    Kotak centang Penampil Peristiwa dipilih

  3. Pilih tombol Mulai untuk menjalankan alat.

  4. Setelah alat mulai berjalan, lihat skenario untuk membuat profil di aplikasi Anda. Lalu pilih Hentikan pengumpulan atau tutup aplikasi Anda untuk melihat data Anda.

    Jendela memperlihatkan Hentikan koleksi

Untuk informasi selengkapnya tentang cara membuat alat lebih efisien, lihat Mengoptimalkan pengaturan Pembuatan Profil.

Memahami data Anda

Pelacakan penampil peristiwa

Nama kolom Deskripsi
Nama Penyedia Sumber peristiwa
Nama Acara Kejadian sebagaimana ditentukan oleh penyedianya
Teks Deskripsi penyedia, nama peristiwa, dan ID untuk peristiwa tersebut
Stempel waktu (md) Saat peristiwa berlangsung
GUID Penyedia ID penyedia peristiwa
ID Peristiwa ID peristiwa
ID Proses Proses dari mana peristiwa terjadi (jika diketahui)
Nama Proses Nama proses jika berjalan secara aktif
ID Utas ID utas tempat peristiwa terjadi (jika diketahui)

Jika ada kolom yang hilang secara default, klik kanan salah satu header kolom yang ada dan pilih kolom yang ingin Anda tambahkan.

Menambahkan kolom ke penampil peristiwa

Saat Anda memilih peristiwa, jendela Properti Tambahan muncul. Properti Umum memperlihatkan daftar properti yang akan muncul untuk peristiwa apa pun. Properti Payload menunjukkan properti khusus untuk peristiwa tersebut. Untuk beberapa peristiwa, Anda juga dapat melihat Tumpukan.

Penampil peristiwa memperlihatkan tumpukan

Mengatur data Anda

Semua kolom kecuali untuk kolom Teks dapat diurutkan.

Jejak penampil peristiwa

Penampil peristiwa menampilkan hingga 20.000 peristiwa sekali waktu. Untuk fokus pada peristiwa yang menarik, Anda dapat memfilter tampilan peristiwa dengan memilih filter Peristiwa. Anda juga dapat melihat persentase jumlah total peristiwa yang terjadi untuk setiap penyedia, dan informasi ini memberi Anda perincian di mana waktu Anda dihabiskan. Arahkan mouse ke atas satu filter peristiwa untuk melihat tips alat yang menunjukkan:

  • Nama kejadian
  • Penyedia
  • GUID
  • Persentase total peristiwa
  • Jumlah peristiwa

Filter peristiwa penampil peristiwa

Filter penyedia menunjukkan persentase dari jumlah total peristiwa yang terjadi untuk setiap penyedia. Arahkan mouse ke atas satu penyedia untuk melihat tips alat serupa dengan nama penyedia, persentase total peristiwa, dan jumlah peristiwa.

Filter penyedia penampil peristiwa

Mengaktifkan peristiwa ETW kustom

Anda dapat melengkapi kode Anda dengan peristiwa ETW kustom dan memungkinkannya muncul di Penampil Peristiwa. Untuk mengaktifkan peristiwa kustom:

  1. Buat kode peristiwa kustom.

    Contoh kode peristiwa kustom C++ disediakan di akhir bagian ini.

  2. Buka Profiler Performa (Alt + F2), aktifkan Penampil Peristiwa, lalu pilih ikon Pengaturan (ikon roda gigi) di sampingnya.

    Cuplikan layar ikon pengaturan penampil peristiwa.

  3. Dalam kotak dialog, aktifkan baris pertama di bawah Penyedia Tambahan, lalu ambil salah satu tindakan berikut:

    • Untuk kode peristiwa kustom asli, atur GUID Penyedia berdasarkan GUID untuk kode peristiwa kustom, dan biarkan nilai Nama Penyedia kosong atau gunakan nilai defaultnya.

    • Untuk kode peristiwa kustom C#, atur nilai Nama Penyedia yang sama dengan yang Anda gunakan saat mendeklarasikan kode peristiwa Anda. Nama ini akan dikonversi menjadi GUID di latar belakang, jadi biarkan GUID Penyedia kosong.

      Untuk peristiwa kustom asli, baris akan terlihat mirip dengan ilustrasi berikut.

      Cuplikan layar pengaturan penampil peristiwa.

  4. Pilih OK.

    Peristiwa kustom muncul di Penampil Peristiwa saat Anda mengumpulkan jejak diagnostik dan membukanya. Ilustrasi berikut ini memperlihatkan peristiwa kustom di Penampil Peristiwa dengan pemfilteran diatur untuk memperlihatkan hanya peristiwa kustom.

    Cuplikan layar penampil peristiwa memperlihatkan peristiwa kustom.

Berikut adalah contoh kode peristiwa kustom untuk C++.

#include <Windows.h>
#include <evntprov.h>
#include <iostream>
#include <thread>

// This GUID must be regenerated so it is unique for your provider
// {7369B7AC-64EB-4618-B6B6-C8442B12E8F2}
GUID customEventProvider = { 0x7369b7ac, 0x64eb, 0x4618, { 0xb6, 0xb6, 0xc8, 0x44, 0x2b, 0x12, 0xe8, 0xf2 } };
REGHANDLE _customEventProviderRegHandle = 0;

// Id, Version, Channel, Level, OpCode, Task, Keyword
const EVENT_DESCRIPTOR CustomEventDescriptor = { 1, 0, 0, 0, 0, 0, 1 };

int main()
{
    // Register the provider
    ULONG res = ::EventRegister(&customEventProvider, nullptr, nullptr, &_customEventProviderRegHandle);
    if (res != ERROR_SUCCESS)
    {
        return res;
    }

    byte data[] = { 0xFF, 0xFF, 0xFF, 0xFF };
    EVENT_DATA_DESCRIPTOR eventData[1];
    ::EventDataDescCreate(&(eventData[0]), &data, sizeof(data));

    for (int i = 0; i < 10; ++i)
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(1000));
        ::EventWrite(_customEventProviderRegHandle, &CustomEventDescriptor, _countof(eventData), eventData);
        std::cout << "Wrote event\n";
    }

    res = ::EventUnregister(_customEventProviderRegHandle);
    if (res != ERROR_SUCCESS)
    {
        return res;
    }

    return 0;
}