Udostępnij za pośrednictwem


Instrumentacja w programie Visual Studio (C#, Visual Basic, C++, F#)

W tym artykule opisano narzędzia instrumentacji w programie Visual Studio, które są używane do zbierania dokładnych liczb wywołań i czasów wywołań.

Istnieją dwa typy instrumentacji:

  • Statyczny, który modyfikuje pliki programu przed jego uruchomieniem (VSInstr)

  • Dynamiczny, który używa procesu dynamicznego, w którym nie zmienia plików. Ładuje pliki do pamięci, a następnie modyfikuje je w celu zbierania informacji instrumentacji. Korzystając z narzędzia instrumentacji dynamicznej, można uzyskać dokładniejsze informacje, ale dla mniejszej części programu. Możesz zbadać małe sekcje kodu.

Instrumentacja dynamiczna jest przydatna, ponieważ:

  • Statyczna instrumentacja przerywa podpisywanie przy użyciu silnych nazw. W przypadku instrumentacji dynamicznej ten problem jest unikany, ponieważ instrumentacja występuje w czasie wykonywania.

  • W przypadku instrumentacji statycznej pliki muszą być wdrażane w określonej kolejności, a narzędzie może nie wiedzieć, gdzie znajdują się pliki. Należy ręcznie uruchomić program VSInstr. Dzięki nowemu narzędziu instrumentacji nie trzeba wyszukiwać plików. W skomplikowanym programie znalezienie wszystkich plików może być trudnym, ręcznym procesem.

Instrumentacja a próbkowanie

Jeśli chodzi o profilowanie, istnieją dwa mechanizmy zbierania danych. Zbieranie za pomocą instrumentacji lub zbieranie za pomocą próbkowania. Aby uzyskać szczegółowe informacje, zobacz Omówienie metod zbierania wydajności.

Narzędzie instrumentacji dynamicznej

Instrumentacja — począwszy od programu Visual Studio 2022 w wersji 17.5 narzędzie instrumentacji oferuje dynamiczną instrumentację dla platform .NET Core, .NET 5+ i .NET Framework. To narzędzie zapewnia najlepszą wydajność w scenariuszach instrumentacji. Uzyskaj dostęp do tego narzędzia przy użyciu profilera wydajności (Alt + F2). Aby uzyskać więcej informacji, zobacz następujący artykuł:

Począwszy od programu Visual Studio 2022 w wersji 17.6, narzędzie instrumentacji obsługuje również język C/C++, ale używa instrumentacji statycznej (VSInstr).

Aby użyć tego narzędzia z poziomu wiersza polecenia, zobacz następujący artykuł:

Instrumentacja — począwszy od programu Visual Studio 2019 w wersji 16.9, narzędzie Instrumentacja zapewnia dynamiczną instrumentację dla platform .NET Core, .NET 5 i nowsze oraz .NET Framework (nie C/C++). To narzędzie używa wersji VSInstr.exe, która obsługuje instrumentację dynamiczną. Uzyskaj dostęp do tego narzędzia przy użyciu profilera wydajności (Alt + F2). W przypadku bibliotek DLL należy zamiast tego użyć narzędzia wiersza polecenia (VSInstr).

Narzędzie instrumentacji statycznej

vsInstr — począwszy od programu Visual Studio 2022 w wersji 17.6 narzędzie instrumentacji używa narzędzia VSInstr do obsługi języka C/C++. Program VSInstr jest również używany w scenariuszach wiersza polecenia i działa w przypadku aplikacji .NET Framework i C/C++. Aby uzyskać więcej informacji, zobacz następujący artykuł: