Jei po atnaujinimo į „Windows 10“ arba „Windows 10“ .„NET Framework 4“.7.1, o bėgdami pastebite žymiai sumažėjusį našumą .NET Framework programos, naudojančios Sistema.Diagnostika.„StackFrame“ klasę, tada šis įrašas gali jus sudominti. Mes pažvelgsime į priežastį ir tada pasiūlysime žinomus klaidos taisymus.
Sistema.Diagnostika.„StackFrame“ našumas blogėja
Programa, kurios našumas veikia priimtinai .„NET Framework 4“.7 ar ankstesnės versijos veikia lėčiau, kai veikia .„NET Framework 4“.7.1. Programos paprastai remiasi „StackFrame“, kai meta .NET išimtys. Jei tai įvyksta dideliu greičiu (daugiau nei 10 įvykių per sekundę), programos gali žymiai sulėtėti (dešimt kartų) ir veikti pastebimai lėčiau nei anksčiau.
Sistemos priežastis.Diagnostika.„StackFrame“ našumas blogėja
The .„NET Framework 4“.7.1 sistemoje „Windows 10“ pridėjo palaikymą aptikti ir išanalizuoti nešiojamojo PDB failo formatą, kad būtų rodoma failo ir eilutės numerio informacija rietuvės pėdsakuose. Vykdant šį pakeitimą, kiekviena kamino pėdsako funkcija turi patikrinti savo apibrėžimo modulį, siekiant nustatyti, ar tas modulis naudoja „Portable PDB“ formatą. Dėl tam tikrų vidinės talpyklos politikos skirtumų vykdymo laikas praleidžia daug daugiau laiko ieškodamas nešiojamų PDB nei ankstesnis .„NET Framework“ versijos praleido ieškodami klasikinių „Windows“ PDB.
Dėl to suformatuoti kamino pėdsakai gaminami lėčiau nei anksčiau.
Ši problema nekeičia išmestų išimčių skaičiaus. Tačiau tai žymiai sumažina programų galimybes tvarkyti šias išimtis.
Žinoma, kad ši problema turi įtakos programoms, naudojančioms „IKVM“ biblioteką, jei jos tikrina rinkinius. Žinoma, kad asamblėjų tikrinimas sukelia išimčių.
Taisyti sistemą.Diagnostika.„StackFrame“ našumas blogina problemą
Norėdami išspręsti šią problemą, „Microsoft“ rekomenduoja naudoti bet kurį iš šių būdų.
1] „StackFrame“ naudokite kitą konstruktorių, kuris užima loginį argumentą
Tai yra pageidaujamas sprendimas.
Jei programų kūrėjai sugeba atlikti savo programų pakeitimus, paskambinkite į sistemą.Diagnostika.„StackTrace“.#ctor (Boolean) konstruktorius, naudodamas klaidingą argumentą, kad išvengtumėte informacijos apie šaltinį. Taip išvengiama to kodo skyriaus, kuriame sumažėja našumas.
2] Grąžinkite arba atnaujinkite į naujausią „Windows 10“ versiją
Taikydami šį metodą, grįžkite į ankstesnę „Windows 10“ versiją / versiją arba naujovinkite į naujausią „Windows 10“ versiją / versiją, jei kyla ši problema ir šiuo metu neveikiate naujausios „Windows 10“ versijos. Taip pat pašalinkite .„NET Framework 4“.7.1, jei yra, iš savo kompiuterio, tada atsisiųskite ir įdiekite ankstesnę arba naujausią versiją .NET sistema.
Tikiuosi tai padės!