System.Diagnostics.StackFramen suorituskyky heikkenee Windows 10:ssä

Jos Windows 10:een tai .NET Framework 4.7.1 :een päivittämisen jälkeen huomaat huomattavan suorituskyvyn heikkenemisen, kun suoritat System.Diagnostics.StackFrame -luokkaa käyttäviä (System.Diagnostics.StackFrame).NET Framework -sovelluksia , tämä viesti saattaa kiinnostaa sinua. Tarkastelemme syytä ja tarjoamme sitten tunnettuja korjauksia virheeseen.

System.Diagnostics.StackFramen suorituskyky heikkenee

System.Diagnostics.StackFramen suorituskyky heikkenee

Sovellus, jonka suorituskyky oli hyväksyttävä .NET Framework 4.7 :ssä tai aiemmissa versioissa, suoritetaan hitaammin, kun se suoritetaan .NET Framework 4.7.1 -versiossa . Sovellukset luottavat yleensä StackFrameen, kun ne heittävät .NET-poikkeuksia. Jos tämä tapahtuu suurella nopeudella (yli 10 tapausta sekunnissa), sovellukset voivat hidastua merkittävästi (kymmenkertaisesti) ja toimia huomattavasti hitaammin kuin ennen.

Syy System.Diagnostics.StackFrame-suorituskyvyn heikkenemiseen(Cause of the System.Diagnostics.StackFrame performance degrade)

Windows 10 : n .NET Framework 4.7.1 lisäsi tuen Portable PDB -tiedostomuodon tunnistamiseen ja jäsentämiseen tiedosto- ja rivinumerotietojen näyttämiseksi pinojäljissä. Osana tätä muutosta jokaisen pinojäljyn funktion määrittelymoduuli tarkistetaan sen määrittämiseksi, käyttääkö kyseinen moduuli Portable PDB -muotoa. Joistakin sisäisen välimuistikäytännön eroista johtuen ajon aikana kuluu paljon enemmän aikaa (Due)kannettavien PDB(Portable PDBs) -tiedostojen etsimiseen kuin aiemmissa .NET Framework -versioissa perinteisten Windowsin PDB(Windows PDBs) -tiedostojen etsimiseen .

Tämä aiheuttaa alustettujen pinojälkien tuottamisen aiempaa hitaammin.

Tämä ongelma ei muuta tehtyjen poikkeusten määrää. Se kuitenkin heikentää merkittävästi sovellusten kykyä käsitellä näitä poikkeuksia.

Tämän ongelman tiedetään vaikuttavan IKVM- kirjastoa käyttäviin sovelluksiin, jos ne etsivät kokoonpanoja. Kokoonpanojen tutkimisen tiedetään aiheuttavan poikkeuksia.

Korjaa System.Diagnostics.StackFrame-(Fix System.Diagnostics.StackFrame) suorituskyvyn heikkenemisongelma

Tämän ongelman ratkaisemiseksi Microsoft suosittelee jommankumman seuraavista tavoista.

1] Käytä StackFramelle toista konstruktoria, joka käyttää Boolen argumenttia(1] Use a different constructor for StackFrame that takes a Boolean argument)

Tämä on suosituin ratkaisu.

Jos sovelluskehittäjät voivat tehdä muutoksia sovelluksiinsa, kutsu (call the) System.Diagnostics.StackTrace. #ctor( Boolen(Boolean) ) konstruktori käyttämällä väärää argumenttia välttääksesi lähdetietojen kaappauksen. Tämä välttää koodin osan, jossa suorituskyky heikkenee.

2] Palauta tai päivitä uusimpaan Windows 10 -versioon(2]  Rollback or upgrade to the latest Windows 10 version)

Tällä menetelmällä palauta Windows 10:n aiempaan versioon/koontiversioon tai(Windows 10) päivitä upgrade to the latest version/build  , jos sinulla on tämä ongelma etkä käytä tällä hetkellä Windows 10 :n uusinta versiota . Poista myös .NET Framework 4.7.1 , jos se on olemassa, tietokoneeltasi ja lataa ja asenna sitten (download).NET Frameworkin(.NET Framework) aiempi versio tai uusin versio .

Hope this helps!



About the author

Olen kokenut Windows 10- ja Windows 11/10 -järjestelmänvalvoja, jolla on kokemusta Edgestä. Minulla on runsaasti tietoa ja kokemusta tarjottavana tällä alalla, minkä vuoksi uskon, että osaamisestani on hyötyä yrityksellesi. Vuosien kokemukseni sekä Windows 10:stä että Edgestä antaa minulle mahdollisuuden oppia nopeasti uusia tekniikoita, ratkaista ongelmia nopeasti ja ottaa vastuuta yrityksesi johtamisesta. Lisäksi kokemukseni Windows 10:stä ja Edgestä tekevät minut erittäin perehtyneeksi käyttöjärjestelmän kaikista näkökohdista, mikä olisi hyödyllistä palvelimien hallinnassa tai ohjelmistosovellusten hallinnassa.



Related posts