.TĪKLS

Sistēma.Diagnostika.StackFrame veiktspēja pasliktinās operētājsistēmā Windows 10

Sistēma.Diagnostika.StackFrame veiktspēja pasliktinās operētājsistēmā Windows 10

Ja pēc jaunināšanas uz Windows 10 vai .NET Framework 4.7.1, un, palaižot, pamanāt ievērojamu veiktspējas samazināšanos .NET Framework lietojumprogrammas, kas izmanto Sistēma.Diagnostika.StackFrame klasē, tad šis ieraksts varētu jūs interesēt. Mēs izskatīsim cēloni un pēc tam piedāvāsim zināmus kļūdas labojumus.

Sistēma.Diagnostika.StackFrame veiktspēja pasliktinās

Lietojumprogramma, kurai bija pieņemama veiktspēja .NET Framework 4.7 vai vecākas versijas darbojas lēnāk, darbojoties ar .NET Framework 4.7.1. Lietotnes parasti paļaujas uz StackFrame, kad tās met .NET izņēmumi. Ja tas notiek lielā ātrumā (vairāk nekā 10 gadījumi sekundē), lietojumprogrammas var ievērojami palēnināties (desmitkārtīgi) un darboties ievērojami lēnāk nekā iepriekš.

Sistēmas cēlonis.Diagnostika.StackFrame veiktspēja pasliktinās

The .NET Framework 4.7.1 operētājsistēmā Windows 10 ir pievienots atbalsts Portable PDB faila formāta noteikšanai un parsēšanai, lai parādītu informāciju par failu un līnijas numuru kaudzes pēdās. Kā daļu no šīm izmaiņām katrai kaudzes izsekošanas funkcijai tiek pārbaudīts tās definējošais modulis, lai noteiktu, vai šajā modulī tiek izmantots Portable PDB formāts. Sakarā ar dažām iekšējās kešatmiņas politikas atšķirībām izpildlaiks pavada daudz vairāk laika portatīvo PDB meklēšanai nekā iepriekšējais .NET Framework versijas pavadīja klasisko Windows PDB meklēšanu.

Tas izraisa formatētu kaudzes pēdu veidošanos lēnāk nekā iepriekš.

Šis jautājums nemaina izmesto izņēmumu skaitu. Tomēr tas ievērojami samazina lietojumprogrammu spēju rīkoties ar šiem izņēmumiem.

Ir zināms, ka šī problēma ietekmē lietojumprogrammas, kas izmanto IKVM bibliotēku, ja tās pārbauda asamblejas. Ir zināms, ka asambleju zondēšana rada izņēmumus.

Labot sistēmu.Diagnostika.StackFrame veiktspēja pasliktina problēmu

Lai novērstu šo problēmu, Microsoft iesaka izmantot kādu no šīm metodēm.

1] StackFrame izmantojiet citu konstruktoru, kas izmanto Būla argumentu

Šis ir vēlamais risinājums.

Ja lietojumprogrammu izstrādātāji var veikt izmaiņas savās lietojumprogrammās, zvaniet uz sistēmu.Diagnostika.StackTrace.#ctor (Būla) konstruktors, izmantojot nepatiesu argumentu, lai izvairītos no avota informācijas tveršanas. Tas ļauj izvairīties no tā koda sadaļas, kurā veiktspēja ir samazināta.

2] Atgriešana vai jaunināšana uz jaunāko Windows 10 versiju

Izmantojot šo metodi, atgriezieties pie iepriekšējās Windows 10 versijas / jaunināšanas vai jaunināšanas uz jaunāko versiju / būvējumu, ja rodas šī problēma un pašlaik nedarbojat jaunāko Windows 10 versiju. Arī atinstalēt .NET Framework 4.7.1, ja tāds ir, no sava datora un pēc tam lejupielādējiet un instalējiet iepriekšējo vai jaunāko versiju .NET Framework.

Ceru tas palīdzēs!

Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...