.NETTO

Systeem.Diagnostiek.StackFrame-prestaties nemen af ​​in Windows 10

Systeem.Diagnostiek.StackFrame-prestaties nemen af ​​in Windows 10

Als u na een upgrade naar Windows 10 of .NET Framework 4.7.1, en je merkt een aanzienlijke prestatievermindering tijdens het hardlopen .NET Framework-toepassingen die gebruikmaken van de Systeem.Diagnostiek.StackFrame klasse, dan is dit bericht misschien interessant voor jou. We zullen naar de oorzaak kijken en vervolgens bekende oplossingen voor de fout aanbieden.

Systeem.Diagnostiek.StackFrame-prestaties nemen af

Een applicatie die acceptabele prestaties had op de .NET Framework 4.7 of eerdere versies worden langzamer uitgevoerd wanneer ze worden uitgevoerd op de .NET Framework 4.7.1. Toepassingen vertrouwen doorgaans op StackFrame wanneer ze gooien .NET uitzonderingen. Als dit in een hoog tempo gebeurt (meer dan 10 incidenten per seconde), kunnen applicaties aanzienlijk vertragen (tienvoudig) en merkbaar langzamer werken dan voorheen.

Oorzaak van het systeem.Diagnostiek.StackFrame-prestaties nemen af

De .NET Framework 4.7.1 in Windows 10 heeft ondersteuning toegevoegd voor het detecteren en parseren van het Portable PDB-bestandsformaat om bestands- en regelnummerinformatie in stacktraces weer te geven. Als onderdeel van deze wijziging wordt voor elke functie in een stacktracering de definiërende module gecontroleerd om te bepalen of die module het Portable PDB-formaat gebruikt. Vanwege enkele verschillen in het interne cachingbeleid, besteedt de runtime veel meer tijd aan het zoeken naar draagbare PDB's dan voorheen .NET Framework-versies besteed aan het zoeken naar klassieke Windows PDB's.

Dit zorgt ervoor dat geformatteerde stapelsporen langzamer worden geproduceerd dan voorheen.

Dit probleem verandert niets aan het aantal uitzonderingen dat wordt gegenereerd. Het vermindert echter aanzienlijk het vermogen van applicaties om met die uitzonderingen om te gaan.

Van toepassingen die de IKVM-bibliotheek gebruiken, is bekend dat ze last hebben van dit probleem als ze naar assemblages zoeken. Het is bekend dat het zoeken naar assemblages uitzonderingen veroorzaakt.

Systeem repareren.Diagnostiek.Probleem met verslechtering van de prestaties van StackFrame

Om dit probleem op te lossen, raadt Microsoft aan een van de volgende methoden te gebruiken:.

1] Gebruik een andere constructor voor StackFrame die een Booleaans argument nodig heeft

Dit is de voorkeursoplossing.

Als applicatieontwikkelaars wijzigingen in hun applicaties kunnen aanbrengen, bel dan de System.Diagnostiek.StackTrace.#ctor(Boolean) constructor door een vals argument te gebruiken om te voorkomen dat broninformatie wordt vastgelegd. Dit vermijdt het gedeelte van de code waarin de prestaties worden verminderd.

2]  Rollback of upgrade naar de nieuwste Windows 10-versie

Ga bij deze methode terug naar de vorige versie/build of upgrade naar de nieuwste versie/build van Windows 10 als u dit probleem ondervindt en u momenteel niet de nieuwste versie van Windows 10 gebruikt. Ook verwijderen .NET Framework 4.7.1 indien aanwezig, vanaf uw computer en download en installeer vervolgens een eerdere versie of de nieuwste versie van .NET Framework.

Ik hoop dat dit helpt!

Sid Meier's Civilization VI downloaden en spelen op Linux and
Inleiding tot het spel Civilization 6 is een moderne versie van het klassieke concept dat werd geïntroduceerd in de serie Age of Empires-games. Het id...
Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...
Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...