Aracılığıyla paylaş


Olay görüntüleyicisi

Performans Profili Oluşturucu'da, uygulamanız çalışırken tanılama bilgilerini toplayabilir ve ardından toplanan bilgileri uygulama durduktan sonra son durum analizi gibi inceleyebilirsiniz.

Genel olay görüntüleyicisi modül yükü, iş parçacığı başlatma ve sistem yapılandırması gibi olayların listesi aracılığıyla uygulama etkinliğini gösterir. Bu görünüm, uygulamanızın Visual Studio profil oluşturucusunun içinde nasıl çalıştığını daha iyi tanılamanıza yardımcı olur.

Ayarlama

  1. Visual Studio'da Performans Profili Oluşturucu'yu açmak için Alt+F2 tuşlarına basın.

  2. Olay Görüntüleyicisi onay kutusunu seçin.

    Olay Görüntüleyicisi onay kutusu seçili

  3. Aracı çalıştırmak için Başlangıç düğmesini seçin.

  4. Araç çalışmaya başladıktan sonra uygulamanızda profil oluşturma senaryosuna gidin. Ardından verilerinizi görmek için Toplamayı durdur'u seçin veya uygulamanızı kapatın.

    Koleksiyonu durdur'u gösteren pencere

Aracı daha verimli hale getirme hakkında daha fazla bilgi için bkz . Profil oluşturma ayarlarını iyileştirme.

Verilerinizi anlama

Olay görüntüleyici izlemesi

Sütun adı Açıklama
Sağlayıcı Adı Olay kaynağı
Olay Adı Sağlayıcısı tarafından belirtilen olay
Metin Olayın sağlayıcı, olay adı ve kimliği açıklamaları
Zaman damgası (ms) Olay gerçekleştiğinde
Sağlayıcı Guid'i Olay sağlayıcısının kimliği
Olay Kodu Olayın kimliği
Process ID Olayın gerçekleştiği işlem (biliniyorsa)
İşlem Adı Etkin bir şekilde çalışıyorsa işlemin adı
İş Parçacığı Kimliği Olayın oluştuğu iş parçacığının kimliği (biliniyorsa)

Varsayılan olarak herhangi bir sütun eksikse, var olan sütun üst bilgilerinden birine sağ tıklayın ve eklemek istediğiniz sütunu seçin.

Olay görüntüleyicisine sütun ekleme

Bir olayı seçtiğinizde Ek Özellikler penceresi görüntülenir. Ortak Özellikler , herhangi bir olay için görünecek özelliklerin listesini gösterir. Payload Özellikleri , olaya özgü özellikleri gösterir. Bazı olaylar için Yığınları da görüntüleyebilirsiniz.

Yığınları gösteren olay görüntüleyicisi

Verilerinizi düzenleme

Metin sütunu dışındaki tüm sütunlar sıralanabilir.

Olay görüntüleyici izlemesi

Olay görüntüleyicisi aynı anda en fazla 20.000 olay görüntüler. İlgi çekici olaylara odaklanmak için Olay filtresini seçerek olayların görünümünü filtreleyebilirsiniz. Ayrıca, her sağlayıcı için gerçekleşen toplam olay sayısının yüzde kaçını görebilirsiniz ve bu bilgiler size zamanınızın nereye harcandığının dökümünü verir. Aşağıdakileri gösteren bir araç ipucu görmek için tek bir olay filtresinin üzerine gelin:

  • Olay adı
  • Provider
  • GUID
  • Toplam olayların yüzdesi
  • Olay sayısı

Olay görüntüleyicisi olay filtresi

Sağlayıcı filtresi, her sağlayıcı için gerçekleşen toplam olay sayısının yüzde kaçını gösterir. Sağlayıcı adı, toplam olayların yüzdesi ve olay sayısı ile benzer bir araç ipucu görmek için tek bir sağlayıcının üzerine gelin.

Olay görüntüleyici sağlayıcısı filtresi

Özel ETW olaylarını etkinleştirme

Kodunuzu özel ETW olaylarıyla izleyebilir ve Olay Görüntüleyicisi'nde gösterilmesini sağlayabilirsiniz. Özel olayları etkinleştirmek için:

  1. Özel olay kodunu oluşturun.

    Bu bölümün sonunda bir C++ özel olay kodu örneği verilmiştir.

  2. Performans Profili Oluşturucu'yu (Alt + F2) açın, Olay Görüntüleyicisi'ni etkinleştirin ve yanındaki Ayarlar simgesini (dişli simgesi) seçin.

    Olay görüntüleyici ayarları simgesinin ekran görüntüsü.

  3. İletişim kutusunda, Ek Sağlayıcılar altındaki ilk satırı etkinleştirin ve aşağıdaki eylemlerden birini yapın:

    • Yerel özel olay kodu için, özel olay kodunun GUID'sini temel alarak Sağlayıcı GUID'sini ayarlayın ve Sağlayıcı Adı değerini boş bırakın veya varsayılan değerini kullanın.

    • C# özel olay kodu için, olay kodunuzu bildirirken kullandığınız Sağlayıcı Adı değerini ayarlayın. Bu ad arka planda GUID'ye dönüştürülür, bu nedenle Sağlayıcı GUID'sini boş bırakın.

      Yerel bir özel olay için, satır aşağıdaki çizime benzer görünmelidir.

      Olay görüntüleyici ayarlarının ekran görüntüsü.

  4. Tamam'ı seçin.

    Özel olay, bir tanılama izlemesi toplayıp açtığınızda Olay Görüntüleyicisi'nde görünür. Aşağıdaki çizimde, Olay Görüntüleyicisi'ndeki özel olaylar gösterilir ve filtreleme yalnızca özel olayı gösterecek şekilde ayarlanmıştır.

    Özel olayları gösteren olay görüntüleyicisinin ekran görüntüsü.

C++ için özel olay kodu örneği aşağıda verilmiştır.

#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;
}