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.
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 .
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.
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
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.
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>
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.