Měření výkonu aplikace z příkazového řádku

Informace o výkonu aplikace můžete shromažďovat pomocí nástrojů příkazového řádku. Můžete shromažďovat údaje o výkonu pro využití procesoru, přidělení paměti .NET, instrumentaci a databázové dotazy.

V příkladu popsaném v tomto článku shromáždíte informace o výkonu pro Microsoft Notepad, ale stejnou metodu lze použít k profilování jakéhokoli procesu.

Poznámka:

Pokud chcete vygenerovat instrumentovanou komponentu C/C++ z příkazového řádku, přečtěte si téma Instrumentace nativní samostatné komponenty před provedením kroků v tomto článku. V případě dat o využití procesoru můžete použít postupy popsané v tomto článku.

Požadavky

  • Visual Studio 2019 nebo novější verze

  • Znalost nástrojů příkazového řádku

  • Pokud chcete shromažďovat informace o výkonu na vzdáleném počítači bez nainstalované sady Visual Studio, nainstalujte na vzdálený počítač nástroje Remote Tools for Visual Studio . Verze nástrojů musí odpovídat vaší verzi sady Visual Studio.

Shromažďování dat o výkonu

Profilace pomocí nástrojů rozhraní příkazového řádku diagnostiky sady Visual Studio funguje tak, že k procesu připojíte nástroj pro profilaci spolu s jedním z agentů kolektoru. Když připojíte nástroj pro profilaci, zahájíte diagnostickou relaci, která zachytí a uloží data profilace, dokud se nástroj nezastaví, a v takovém okamžiku se tato data exportují do souboru .diagsession . Pak můžete tento soubor otevřít v sadě Visual Studio a analyzovat výsledky.

  1. Spusťte Poznámkový blok a otevřete Správce úloh, abyste získali ID procesu (PID). Ve Správci úloh najděte PID na kartě Podrobnosti .

  2. Otevřete příkazový řádek a přejděte do adresáře se spustitelným souborem agenta kolekce, obvykle zde (pro Visual Studio Enterprise).

    <Visual Studio installation folder>\2022\Enterprise\Team Tools\DiagnosticsHub\Collector\

    <Visual Studio installation folder>\2019\Enterprise\Team Tools\DiagnosticsHub\Collector\

    Pro vzdálené nástroje je spustitelný soubor agenta kolekce v tomto umístění:

    Program Files\Microsoft Visual Studio 17.0\Team Tools\DiagnosticsHub\Collector\

    Program Files\Microsoft Visual Studio 16.0\Team Tools\DiagnosticsHub\Collector\

    Poznámka:

    Pokud používáte příkazový řádek ve vzdálených scénářích, musíte na vzdáleném počítači spustit pokyny příkazového řádku. Pokud se chcete připojit ke vzdálenému počítači ze sady Visual Studio, použijte profiler výkonu v sadě Visual Studio.

  3. Začněte VSDiagnostics.exe zadáním následujícího příkazu.

    VSDiagnostics.exe start <id> /attach:<pid> /loadConfig:<configFile>
    

    Argumenty, které musí být zahrnuty, jsou:

    • <ID> Identifikuje relaci kolekce. ID musí být číslo od 1 do 255.
    • <pid, PID> procesu, který chcete profilovat, v tomto případě PID, který jste našli v kroku 1.
    • <configFile>, konfigurační soubor pro agenta kolekce, kterého chcete spustit. Další informace naleznete v tématu Konfigurační soubory pro agenty.

    Například můžete použít následující příkaz pro agenta CPUUsageBase nahrazením pid , jak je popsáno výše.

    VSDiagnostics.exe start 1 /attach:<pid> /loadConfig:AgentConfigs\CPUUsageLow.json
    

    Případně můžete spustitelný soubor spustitelný soubor spustit pomocí launch příkazu. V tomto scénáři nemusíte získat ID procesu a připojit se k němu. Všechny nástroje podporují launch příkaz, i když některé nepodporují attach, jako je instrumentace a nástroj pro přidělování .NET. Ke spuštění spustitelného souboru a shromažďování dat instrumentace použijte například následující:

    VSDiagnostics start <id> /launch:<ExeToProfile> /loadConfig:AgentConfigs\PerfInstrumentation.json
    
  4. Změňte velikost Poznámkového bloku nebo do něj zadejte něco, abyste měli jistotu, že se shromažďují některé zajímavé informace o profilaci.

  5. Zastavte relaci kolekce a odešlete výstup do souboru zadáním následujícího příkazu.

    VSDiagnostics.exe stop <id> /output:<path to file>
    
  6. Vyhledejte výstup souboru .diagsession z předchozího příkazu a otevřete ho v sadě Visual Studio (Otevřít soubor>) a prozkoumejte shromážděné informace.

    Pokud chcete analyzovat výsledky, podívejte se do dokumentace odpovídajícího nástroje pro výkon. Může se jednat například o využití procesoru, nástroj pro přidělování objektů .NET, instrumentaci nebo databázový nástroj.

Konfigurační soubory agenta

Agenti kolekce jsou zaměnitelné komponenty, které shromažďují různé typy dat v závislosti na tom, co se pokoušíte měřit.

Pro usnadnění pohodlí doporučujeme uložit informace do konfiguračního souboru agenta. Konfigurační soubor je .json soubor, který obsahuje minimálně název .dll a jeho COM CLSID. Ve výchozím nastavení najdete ukázkové konfigurační soubory v následující složce:

Program Files\Microsoft Visual Studio\<version>\<sku>\Team Tools\DiagnosticsHub\Collector\AgentConfigs

Konfigurace cpuUsage (Base/High/Low) odpovídají datům shromážděným pro nástroj pro profilaci využití procesoru. Konfigurace DotNetObjectAlloc (Base/Low) odpovídají datům shromážděným pro nástroj přidělování objektů .NET.

Základní/nízké/vysoké konfigurace odkazují na vzorkovací frekvenci. Například Nízká je 100 vzorků za sekundu a vysoká je 4000 vzorků za sekundu.

Aby nástroj VSDiagnostics.exe fungoval s agentem kolekce, vyžaduje knihovnu DLL i IDENTIFIKÁTOR CLSID modelu COM pro příslušného agenta. Agent může mít také další možnosti konfigurace, což by byly všechny možnosti, které jsou zadané v konfiguračním souboru, formátované jako správně řídicí kód JSON.

Oprávnění

Chcete-li profilovat aplikaci, která vyžaduje zvýšená oprávnění, musíte to provést z příkazového řádku se zvýšenými oprávněními.