Sdílet prostřednictvím


Prohlížeč událostí

V profileru výkonu můžete shromažďovat diagnostické informace, když je vaše aplikace spuštěná, a pak po zastavení aplikace prozkoumat shromážděné informace, jako je analýza po mortemu.

Prohlížeč obecných událostí zobrazuje aktivitu aplikace prostřednictvím seznamu událostí, jako je načtení modulu, spuštění vlákna a konfigurace systému. Toto zobrazení vám pomůže lépe diagnostikovat, jak vaše aplikace probíhá v profileru sady Visual Studio.

Nastavení

  1. Vyberte Alt+F2 a otevřete profiler výkonu v sadě Visual Studio.

  2. Zaškrtněte políčko Prohlížeč událostí.

    Zaškrtávací políčko Prohlížeč událostí zaškrtnuté

  3. Nástroj spustíte výběrem tlačítka Start.

  4. Po spuštění nástroje si projděte scénář profilování v aplikaci. Pak vyberte Zastavit shromažďování nebo zavřete aplikaci a zobrazte data.

    Okno s možností Zastavit kolekci

Další informace o tom, jak nástroj zefektivnit, najdete v tématu Optimalizace nastavení profilace.

Pochopení vašich dat

Trasování prohlížeče událostí

Název sloupce Popis
Název poskytovatele Zdroj události
Název události Událost určená jeho poskytovatelem
Text Popis zprostředkovatele, názvu události a ID události
Časové razítko (ms) Kdy došlo k události
Identifikátor GUID zprostředkovatele ID zprostředkovatele událostí
ID události ID události
Process ID Proces, ze kterého došlo k události (pokud je známo)
Název procesu Název procesu, pokud je aktivně spuštěný
ID vlákna ID vlákna, ze kterého došlo k události (pokud je známo)

Pokud některý sloupec ve výchozím nastavení chybí, klikněte pravým tlačítkem myši na některé z existujících záhlaví sloupců a vyberte sloupec, který chcete přidat.

Přidání sloupců do prohlížeče událostí

Když vyberete událost, zobrazí se okno Další vlastnosti . Běžné vlastnosti zobrazují seznam vlastností, které se zobrazí pro libovolnou událost. Vlastnosti datové části zobrazují vlastnosti specifické pro danou událost. U některých událostí můžete také zobrazit zásobníky.

Prohlížeč událostí zobrazující zásobníky

Uspořádání dat

Všechny sloupce s výjimkou sloupce Text se dají seřadit.

Trasování prohlížeče událostí

Prohlížeč událostí zobrazuje najednou až 20 000 událostí. Pokud se chcete zaměřit na události, které vás zajímají, můžete filtrovat zobrazení událostí výběrem filtru událostí. Můžete také zjistit, jaké procento celkového počtu událostí u jednotlivých poskytovatelů nastalo, a tyto informace vám poskytují rozpis místa, kde se váš čas tráví. Když najedete myší na jeden filtr událostí, zobrazí se popis, který zobrazuje:

  • Název události
  • Poskytovatel
  • Identifikátor GUID
  • Procento celkových událostí
  • Počet událostí

Filtr událostí prohlížeče událostí

Filtr zprostředkovatele zobrazuje procento celkového počtu událostí, ke kterým došlo u každého zprostředkovatele. Najeďte myší na jednoho zprostředkovatele, aby se zobrazil podobný popis s názvem poskytovatele, procentem celkových událostí a počtem událostí.

Filtr zprostředkovatele prohlížeče událostí

Povolení vlastních událostí pro Windows

Kód můžete instrumentovat s vlastními událostmi tras pro Windows a povolit jejich zobrazení v Prohlížeči událostí. Povolení vlastních událostí:

  1. Sestavte vlastní kód události.

    Na konci této části je k dispozici příklad vlastního kódu události jazyka C++.

  2. Otevřete Profiler výkonu (Alt + F2), povolte Prohlížeč událostí a pak vyberte ikonu Nastavení (ikona ozubeného kola) vedle něj.

    Snímek obrazovky s ikonou nastavení prohlížeče událostí

  3. V dialogovém okně povolte první řádek v části Další zprostředkovatelé a proveďte jednu z následujících akcí:

    • V případě nativního vlastního kódu události nastavte identifikátor GUID zprostředkovatele na základě identifikátoru GUID vlastního kódu události a ponechte hodnotu Název zprostředkovatele prázdnou nebo použijte výchozí hodnotu.

    • Pro kód vlastní události jazyka C# nastavte stejnou hodnotu názvu zprostředkovatele, kterou jste použili při deklarování kódu události. Tento název se převede na identifikátor GUID na pozadí, takže ponechte identifikátor GUID zprostředkovatele prázdný.

      V případě nativní vlastní události by měl řádek vypadat podobně jako na následujícím obrázku.

      Snímek obrazovky s nastavením prohlížeče událostí

  4. Vyberte OK.

    Vlastní událost se zobrazí v Prohlížeči událostí, když shromáždíte trasování diagnostiky a otevřete ji. Následující obrázek znázorňuje vlastní události v Prohlížeči událostí s nastaveným filtrováním tak, aby zobrazovaly pouze vlastní událost.

    Snímek obrazovky prohlížeče událostí zobrazující vlastní události

Tady je příklad vlastního kódu události pro 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;
}