.SÍŤ

Systém.Diagnostika.Snížení výkonu StackFrame ve Windows 10

Systém.Diagnostika.Snížení výkonu StackFrame ve Windows 10

Pokud po upgradu na Windows 10 nebo .NET Framework 4.7.1 a při spuštění zaznamenáte výrazné snížení výkonu .NET Framework aplikace, které používají Systém.Diagnostika.StackFrame třídy, pak by vás tento příspěvek mohl zajímat. Podíváme se na příčinu a poté nabídneme známé opravy chyby.

Systém.Diagnostika.Snížení výkonu StackFrame

Aplikace, která měla přijatelný výkon spuštěný na Windows .NET Framework 4.7 nebo dřívější verze se při spuštění na Windows spustí pomaleji .NET Framework 4.7.1. Aplikace obvykle spoléhají na StackFrame, když hodí .NET výjimky. Pokud k tomu dojde vysokou rychlostí (více než 10 incidentů za sekundu), aplikace se mohou výrazně zpomalit (desetkrát) a běžet znatelně pomaleji než dříve.

Příčina systému.Diagnostika.Snížení výkonu StackFrame

The .NET Framework 4.7.1 ve Windows 10 přidaná podpora pro detekci a analýzu formátu souboru Portable PDB pro zobrazení informací o číslech souborů a řádků ve stopách zásobníku. V rámci této změny má každá funkce v trasování zásobníku zkontrolován svůj definiční modul, aby zjistila, zda tento modul používá formát Portable PDB. Kvůli určitým rozdílům v zásadách interního ukládání do mezipaměti tráví modul runtime hledáním přenosných PDB mnohem více času než předchozí .Verze NET Framework strávené hledáním klasických Windows PDB.

To způsobí, že naformátované stopy zásobníku budou vytvářeny pomaleji než dříve.

Tento problém nezmění počet výjimek, které jsou vyvolány. Výrazně to však snižuje schopnost aplikací tyto výjimky zpracovávat.

Je známo, že aplikace, které používají knihovnu IKVM, jsou tímto problémem ovlivněny, pokud zkoumají sestavení. Je známo, že sondování pro sestavení způsobuje výjimky.

Opravit systém.Diagnostika.Problém se snížením výkonu StackFrame

Chcete-li tento problém vyřešit, společnost Microsoft doporučuje použít některou z následujících metod.

1] Použijte jiný konstruktor pro StackFrame, který bere logický argument

Toto je upřednostňované řešení.

Pokud jsou vývojáři aplikací schopni provádět změny ve svých aplikacích, zavolejte do systému.Diagnostika.StackTrace.#ctor (Boolean) konstruktor pomocí argumentu false, aby se zabránilo zachycení zdrojových informací. Tím se vyhnete části kódu, ve které je snížen výkon.

2] Vrátit zpět nebo upgradovat na nejnovější verzi Windows 10

V této metodě se vraťte zpět na předchozí verzi / sestavení nebo upgradujte na nejnovější verzi / sestavení systému Windows 10, pokud máte tento problém a aktuálně nepoužíváte nejnovější verzi systému Windows 10. Také odinstalujte .NET Framework 4.7.1, pokud je k dispozici, z počítače a poté stáhněte a nainstalujte předchozí verzi nebo nejnovější verzi .NET Framework.

Snad to pomůže!

Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...