.NET

Süsteem.Diagnostika.StackFrame'i jõudlus langeb Windows 10-s

Süsteem.Diagnostika.StackFrame'i jõudlus langeb Windows 10-s

Kui pärast täiendamist Windows 10-le või .NET Framework 4.7.1 ja märkate jooksmisel märkimisväärset jõudluse langust .NET raamistiku rakendused, mis kasutavad Süsteem.Diagnostika.StackFrame klassi, siis võib see postitus teile huvi pakkuda. Vaatame selle põhjust ja pakume siis vea teadaolevaid parandusi.

Süsteem.Diagnostika.StackFrame'i jõudlus halveneb

Rakendus, millel oli .NET Framework 4.7 või vanemad versioonid töötavad aeglasemalt, kui töötate sellel .NET Framework 4.7.1. Rakendused toetuvad viskamisel tavaliselt StackFrame'ile .NET erandid. Kui see juhtub suure kiirusega (üle 10 juhtumi sekundis), võivad rakendused aeglustada märkimisväärselt (kümnekordselt) ja töötada tunduvalt aeglasemalt kui varem.

Süsteemi põhjus.Diagnostika.StackFrame'i jõudlus halveneb

The .NET Framework 4.7.1 Windows 10-s lisas tugi kaasaskantava PDB-failivormingu tuvastamiseks ja parsimiseks, et näidata faili- ja reanumbriteavet virnajälgedes. Selle muudatuse osana kontrollitakse iga virnajälje funktsiooni oma määratlevat moodulit, et teha kindlaks, kas see moodul kasutab vormingut Portable PDB. Sisemiste vahemällu salvestamise eeskirjade mõningate erinevuste tõttu kulutab käitamisaeg kaasaskantavate PDB-de otsimiseks palju rohkem aega kui eelmine .NET Framework'i versioonid veetsid klassikaliste Windowsi PDB-de otsimist.

See põhjustab vormindatud virnajälgede tootmise varasemast aeglasemalt.

See probleem ei muuda visatavate erandite arvu. Kuid see vähendab oluliselt rakenduste võimet neid erandeid käsitleda.

Teadaolevalt mõjutab see probleem IKVM-i teeki kasutavaid rakendusi, kui nad proovivad assambleesid. Teadaolevalt põhjustab assambleede proovimine erandeid.

Paranda süsteem.Diagnostika.StackFrame'i jõudlus halvendab probleemi

Selle probleemi lahendamiseks soovitab Microsoft kasutada ühte järgmistest meetoditest.

1] Kasutage StackFrame'i jaoks muud konstruktorit, mis võtab Boole'i ​​argumendi

See on eelistatud lahendus.

Kui rakenduste arendajad saavad oma rakendusi muuta, helistage süsteemile.Diagnostika.StackTrace.#ctor (Boole'i) konstruktor, kasutades vale argumenti, et vältida lähteandmete hõivamist. See väldib koodi jaotist, milles jõudlus on vähenenud.

2] Taastage või värskendage uusimale Windows 10 versioonile

Selle meetodi abil saate tagasi minna Windows 10 eelmisele versioonile / ehitada või uuendada uusimale versioonile / järjele, kui teil on seda probleemi ja te ei tööta praegu Windows 10 uusimat versiooni. Samuti desinstallige .NET Framework 4.7.1, kui see on olemas, arvutist ning laadige alla ja installige eelmine versioon või uusim versioon .NET raamistik.

Loodan, et see aitab!

Kuidas kasutada Xdotooli hiireklõpsude ja klahvivajutuste stimuleerimiseks Linuxis
Xdotool on tasuta ja avatud lähtekoodiga käsurea tööriist hiireklõpsude ja klahvivajutuste simuleerimiseks. See artikkel hõlmab lühikest juhendit xdot...
Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...