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ł: