.NETO

Sustav.Dijagnostika.StackFrame performanse se pogoršavaju u sustavu Windows 10

Sustav.Dijagnostika.StackFrame performanse se pogoršavaju u sustavu Windows 10

Ako nakon nadogradnje na Windows 10 ili .NET Framework 4.7.1, a primijetite značajan pad performansi kada trčite .NET Framework aplikacije koje koriste Sustav.Dijagnostika.StackFrame razreda, onda bi vas ovaj post mogao zanimati. Istražit ćemo uzrok, a zatim ponuditi poznate ispravke pogreške.

Sustav.Dijagnostika.StackFrame performanse se pogoršavaju

Aplikacija koja je imala prihvatljive performanse na .NET Framework 4.7 ili starije verzije izvršavaju se sporije kada se izvode na .NET Framework 4.7.1. Aplikacije se obično oslanjaju na StackFrame kada bacaju .NET-ove iznimke. Ako se to dogodi velikom brzinom (više od 10 incidenata u sekundi), aplikacije se mogu znatno usporiti (deseterostruko) i pokrenuti osjetno sporije nego prije.

Uzrok sustava.Dijagnostika.StackFrame performanse se pogoršavaju

The .NET Framework 4.7.1 u sustavu Windows 10 dodana je podrška za otkrivanje i raščlanjivanje formata prijenosne PDB datoteke radi prikazivanja podataka o broju datoteke i retka u tragovima stoga. Kao dio ove promjene, svaka funkcija u tragu steka provjerava svoj definirajući modul kako bi utvrdila koristi li taj modul prijenosni PDB format. Zbog nekih razlika u politici unutarnjeg predmemoriranja, vrijeme izvođenja troši mnogo više vremena na traženje prijenosnih PDB-ova nego prethodno .NET Framework verzije provele su tražeći klasične Windows PDB-ove.

To uzrokuje da se formatirani tragovi stogova proizvode sporije nego prije.

Ovaj problem ne mijenja broj izuzetaka koji su izbačeni. Međutim, to značajno smanjuje sposobnost aplikacija da obrađuju te iznimke.

Poznato je da ovaj problem utječe na aplikacije koje koriste knjižnicu IKVM ako pretražuju sklopove. Poznato je da sondiranje sklopova uzrokuje iznimke.

Popravi sustav.Dijagnostika.Problem s pogoršanjem performansi StackFramea

Da bi riješio ovaj problem, Microsoft preporučuje upotrebu bilo koje od sljedećih metoda.

1] Upotrijebite drugi konstruktor za StackFrame koji uzima logički argument

Ovo je poželjno rješenje.

Ako programeri aplikacija mogu izvršiti promjene u svojim aplikacijama, nazovite sustav.Dijagnostika.StackTrace.#ctor (Boolean) konstruktor korištenjem lažnog argumenta kako bi se izbjeglo hvatanje izvornih podataka. Time se izbjegava odjeljak koda u kojem se smanjuje izvedba.

2] Vraćanje ili nadogradnja na najnoviju verziju sustava Windows 10

Ovom metodom vratite se na prethodnu verziju / gradite ili nadogradite na najnoviju verziju / verziju sustava Windows 10 ako imate problem i trenutno ne koristite najnoviju verziju sustava Windows 10. Također deinstalirajte .NET Framework 4.7.1, ako postoji, sa svog računala, a zatim preuzmite i instalirajte prethodnu verziju ili najnoviju verziju .NET Framework.

Nadam se da ovo pomaže!

Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...
SuperTuxKart za Linux
SuperTuxKart sjajan je naslov osmišljen kako bi vam besplatno pružio iskustvo Mario Kart na vašem Linux sustavu. Prilično je izazovno i zabavno igrati...
Vodič za bitku za Wesnoth
Bitka za Wesnoth jedna je od najpopularnijih strateških igara otvorenog koda koje trenutno možete igrati. Ne samo da se ova igra razvija već jako dugo...