A System.Diagnostics.StackFrame teljesítménye romlik a Windows 10 rendszerben

Ha a Windows 10-re vagy a .NET-keretrendszer 4.7.1 -re történő frissítése után jelentős teljesítménycsökkenést észlel a System.Diagnostics.StackFrame osztályt használó .NET -keretrendszer-alkalmazások futtatásakor , akkor ez a bejegyzés érdekelheti. Megvizsgáljuk az okot, majd felajánljuk a hiba ismert javításait.

A System.Diagnostics.StackFrame teljesítménye romlik

A System.Diagnostics.StackFrame teljesítménye romlik

Azok az alkalmazások, amelyek a .NET-keretrendszer 4.7(.NET Framework 4.7) -es vagy korábbi verzióin futnak, lassabban futnak, ha a .NET-keretrendszer 4.7.1(.NET Framework 4.7.1) -es verzióján fut . Az alkalmazások általában a StackFrame-re támaszkodnak, amikor .NET-kivételeket dobnak ki. Ha ez nagy sebességgel történik (több mint 10 incidens másodpercenként), az alkalmazások jelentősen lelassulhatnak (tízszeresére), és észrevehetően lassabban futhatnak, mint korábban.

A System.Diagnostics.StackFrame teljesítményromlásának oka(Cause of the System.Diagnostics.StackFrame performance degrade)

A Windows 10 .NET-keretrendszer 4.7.1(.NET Framework 4.7.1) - es verziója támogatta a Portable PDB fájlformátum észlelését és elemzését, hogy a fájl- és sorszámadatokat veremnyomokban jelenítse meg. Ennek a változásnak a részeként a verem nyomkövetésében lévő minden egyes függvényt ellenőrizni kell annak meghatározására, hogy az adott modul a Portable PDB formátumot használja-e. A(Due) belső gyorsítótárazási házirendek bizonyos eltérései miatt a futásidő sokkal több időt tölt a hordozható PDB(Portable PDBs) -k keresésével, mint a korábbi .NET - keretrendszer(Framework) -verziók a klasszikus Windows PDB(Windows PDBs) -k keresésével .

Emiatt a formázott veremnyomok lassabban jönnek létre, mint korábban.

Ez a probléma nem módosítja a kidobott kivételek számát. Ez azonban jelentősen csökkenti az alkalmazások azon képességét, hogy kezeljék ezeket a kivételeket.

Az IKVM könyvtárat használó alkalmazásokat köztudottan érinti ez a probléma, ha összeállításokat keresnek. Ismeretes, hogy az összeállítások vizsgálata kivételeket okoz.

Javítsa ki a System.Diagnostics.StackFrame(Fix System.Diagnostics.StackFrame) teljesítménycsökkenéssel kapcsolatos problémát

A probléma megoldásához a Microsoft az alábbi módszerek valamelyikét javasolja.

1] Használjon másik konstruktort a StackFrame-hez, amely logikai argumentumot vesz fel(1] Use a different constructor for StackFrame that takes a Boolean argument)

Ez az előnyben részesített megoldás.

Ha az alkalmazásfejlesztők módosítani tudják alkalmazásaikat, hívja a (call the) System.Diagnostics.StackTrace programot. (System.Diagnostics.StackTrace.)#ctor( Boolean ) konstruktor hamis argumentum használatával, hogy elkerülje a forrásinformációk rögzítését. Ezzel elkerülhető a kód azon része, amelyben a teljesítmény csökken.

2] Visszaállítás vagy frissítés a Windows 10 legújabb verziójára(2]  Rollback or upgrade to the latest Windows 10 version)

Ezzel a módszerrel térjen vissza a Windows 10 előző verziójára/buildére , vagy upgrade to the latest version/build  , ha ezt a problémát tapasztalja, és jelenleg nem a Windows 10 legújabb verzióját használja . Távolítsa el a .NET-keretrendszer 4.7.1 -es verzióját is , ha van, a számítógépéről, majd töltse le és telepítse a (download).NET-keretrendszer(.NET Framework) korábbi vagy legújabb verzióját .

Hope this helps!



About the author

Az üzleti életben és a technológiában a Windows 10 és a Windows 11/10 nagyon fontos eszközök. Lehetővé teszik, hogy minden eddiginél könnyebben és biztonságosabban kommunikáljon a számítógépekkel, valamint hatékony, de testreszabható alkalmazásokat futtathat biztonsági kockázatok nélkül. Ezek az eszközök olyan vállalkozások számára is nélkülözhetetlenek, amelyek szeretnék növelni online jelenlétüket és új ügyfeleket elérni. Emiatt azt mondanám, hogy a Windows 10 és a Windows 11/10 terén szerzett tudásom kiváló jelöltté tesz egy ilyen munkára vagy vállalkozásra.



Related posts