Pogorszenie wydajności System.Diagnostics.StackFrame w systemie Windows 10
Jeśli po uaktualnieniu do systemu Windows 10 lub .NET Framework 4.7.1 zauważysz znaczny spadek wydajności podczas uruchamiania aplikacji .NET Framework korzystających z klasy System.Diagnostics.StackFrame , ten wpis może Cię zainteresować. Przyjrzymy się przyczynie, a następnie zaproponujemy znane poprawki błędu.
Pogorszenie wydajności System.Diagnostics.StackFrame
Aplikacja, która miała akceptowalną wydajność działającą w .NET Framework 4,7 lub wcześniejszych wersjach, działa wolniej podczas uruchamiania w .NET Framework 4.7.1 . Aplikacje zazwyczaj polegają na StackFrame, gdy zgłaszają wyjątki .NET. Jeśli dzieje się to z dużą szybkością (ponad 10 incydentów na sekundę), aplikacje mogą znacznie zwolnić (dziesięciokrotnie) i działać zauważalnie wolniej niż wcześniej.
Przyczyna obniżenia wydajności System.Diagnostics.StackFrame(Cause of the System.Diagnostics.StackFrame performance degrade)
.NET Framework 4.7.1 w systemie Windows 10(Windows 10) dodał obsługę wykrywania i analizowania formatu pliku Portable PDB w celu wyświetlenia informacji o pliku i numerze wiersza w śladach stosu. W ramach tej zmiany każda funkcja w śledzeniu stosu ma sprawdzany moduł definiujący, aby określić, czy ten moduł używa formatu Portable PDB . Ze względu(Due) na pewne różnice w wewnętrznych zasadach buforowania środowisko uruchomieniowe spędza znacznie więcej czasu na wyszukiwaniu przenośnych plików PDB(Portable PDBs) niż poprzednie wersje .NET Framework poświęcone na wyszukiwanie klasycznych plików PDB systemu Windows(Windows PDBs) .
Powoduje to, że sformatowane ślady stosu są tworzone wolniej niż wcześniej.
Ten problem nie zmienia liczby zgłaszanych wyjątków. Jednak znacznie zmniejsza zdolność aplikacji do obsługi tych wyjątków.
Wiadomo, że ten problem dotyczy aplikacji korzystających z biblioteki IKVM , jeśli wyszukują zestawy. (IKVM)Wiadomo, że sondowanie zestawów powoduje wyjątki.
Napraw(Fix System.Diagnostics.StackFrame) problem ze spadkiem wydajności System.Diagnostics.StackFrame
Aby rozwiązać ten problem, firma Microsoft(Microsoft) zaleca użycie jednej z następujących metod.
1] Użyj innego konstruktora dla StackFrame, który przyjmuje argument logiczny(1] Use a different constructor for StackFrame that takes a Boolean argument)
To jest preferowane rozwiązanie.
Jeśli deweloperzy aplikacji mogą wprowadzać zmiany w swoich aplikacjach, wywołaj (call the) System.Diagnostics.StackTrace. Konstruktor #ctor( Boolean ) przy użyciu fałszywego argumentu, aby uniknąć przechwytywania informacji o źródle. Pozwala to uniknąć sekcji kodu, w której wydajność jest zmniejszona.
2] Przywróć lub uaktualnij do najnowszej wersji systemu Windows 10(2] Rollback or upgrade to the latest Windows 10 version)
W tej metodzie przywróć poprzednią wersję/kompilację lub upgrade to the latest version/build systemu Windows 10 , jeśli napotykasz ten problem i nie korzystasz obecnie z najnowszej wersji systemu Windows 10 . Odinstaluj również program .NET Framework 4.7.1 , jeśli jest obecny, z komputera, a następnie pobierz(download) i zainstaluj poprzednią lub najnowszą wersję programu .NET Framework .
Hope this helps!
Related posts
Jak sprawdzić wersję .NET Framework zainstalowaną na komputerze z systemem Windows 10?
Napraw błąd 0x800F080C podczas instalacji .NET Framework w systemie Windows 10
Wybierz, gdzie chcesz wyświetlić opcję aplikacji wyszarzoną w ustawieniach systemu Windows 10
Sieć VPN oparta na CMAK nie działa po aktualizacji systemu Windows 10
Schowek w chmurze (Ctrl+V) nie działa lub nie synchronizuje się w systemie Windows 10
Rozwiązywanie problemów z zawieszaniem się lub losowym blokowaniem systemu Windows 10
Brak pliku MSVCR71.dll na komputerze z systemem Windows 10
Jak wyłączyć automatyczne aktualizacje sterowników w systemie Windows 10?
Włącz przełącznik Strumień wideo HDR po aktualizacji do systemu Windows 10
3 najlepsze aplikacje Reddit dla systemu Windows 10, które są dostępne w Sklepie Windows
Ikony pulpitu zmieniają kolejność i przesuwają się po ponownym uruchomieniu w systemie Windows 10
Problemy z funkcją CreateWindowEx dla aplikacji 32-bitowych w systemie Windows 10
Kolekcja Microsoft Solitaire nie otwiera się w systemie Windows 10
Brak karty Pulpit zdalny w RDWEB w przeglądarce Edge w systemie Windows 10
Tryb samolotowy wyszarzony Windows 10
Przesyłanie na urządzenie nie działa w systemie Windows 10
Najlepsze darmowe oprogramowanie skanera kodów kreskowych dla systemu Windows 10
Napraw błąd serwera RPC jest niedostępny w systemie Windows 10
Mikrofon zewnętrzny rozpoznawany jako słuchawki w systemie Windows 10
Jak zainstalować NumPy za pomocą PIP w systemie Windows 10?