.NET

Systém.Diagnostika.Zníženie výkonu StackFrame v systéme Windows 10

Systém.Diagnostika.Zníženie výkonu StackFrame v systéme Windows 10

Ak po inovácii na Windows 10 alebo Windows 7 .NET Framework 4.7.1 a pri behu si všimnete výrazný pokles výkonu .NET Framework aplikácie, ktoré používajú Systém.Diagnostika.StackFrame triedy, potom by vás tento príspevok mohol zaujímať. Pozrime sa na príčinu a potom ponúkneme známe opravy chyby.

Systém.Diagnostika.Zníženie výkonu StackFrame

Aplikácia, ktorá mala prijateľný výkon bežiaci na serveri .NET Framework 4.7 alebo staršie verzie sa pri spustení na serveri Windows spustia pomalšie .NET Framework 4.7.1. Aplikácie sa pri hodení zvyčajne spoliehajú na StackFrame .NET výnimky. Ak k tomu dôjde vysokou rýchlosťou (viac ako 10 incidentov za sekundu), aplikácie sa môžu výrazne spomaliť (desaťkrát) a bežať výrazne pomalšie ako predtým.

Príčina systému.Diagnostika.Zníženie výkonu StackFrame

The .NET Framework 4.7.1 vo Windows 10 pridaná podpora detekcie a syntaktickej analýzy formátu súboru Portable PDB na zobrazenie informácií o čísle súboru a riadku v stopách zásobníka. V rámci tejto zmeny má každá funkcia v sledovaní zásobníka skontrolovaný svoj definičný modul, aby zistila, či tento modul používa formát Portable PDB. Kvôli niektorým rozdielom v politike interného ukladania do medzipamäte trávi runtime hľadaním prenosných PDB oveľa viac času ako v predchádzajúcich .Verzie NET Framework strávené hľadaním klasických Windows PDB.

To spôsobí, že naformátované stopy zásobníka sa budú produkovať pomalšie ako predtým.

Tento problém nemení počet udelených výnimiek. Výrazne to však znižuje schopnosť aplikácií tieto výnimky spracovať.

Je známe, že tento problém ovplyvňuje aplikácie, ktoré používajú knižnicu IKVM, ak skúmajú zhromaždenia. Je známe, že sondovanie pre zostavy spôsobuje výnimky.

Opravný systém.Diagnostika.Problém so znížením výkonu StackFrame

Na vyriešenie tohto problému spoločnosť Microsoft odporúča použiť niektorú z nasledujúcich metód.

1] Pre StackFrame použite iný konštruktor, ktorý použije logický argument

Toto je preferované riešenie.

Ak sú vývojári aplikácií schopní vykonať zmeny vo svojich aplikáciách, zavolajte na Systém.Diagnostika.StackTrace.Konštruktor #ctor (boolovský) pomocou nepravdivého argumentu, aby sa zabránilo zachytávaniu informácií o zdroji. Takto sa vyhnete časti kódu, v ktorej je výkon znížený.

2] Vrátiť späť alebo inovovať na najnovšiu verziu Windows 10

V tejto metóde sa vráťte späť na predchádzajúcu verziu / zostavenie alebo inovujte na najnovšiu verziu / zostavenie systému Windows 10, ak máte tento problém a momentálne nepoužívate najnovšiu verziu systému Windows 10. Tiež odinštalovať .NET Framework 4.7.1, ak existuje, z počítača a potom stiahnite a nainštalujte predchádzajúcu alebo najnovšiu verziu servera .Internetová sieť.

Dúfam, že to pomôže!

Top 5 ergonomických produktov pre počítačové myši pre Linux
Spôsobuje dlhodobé používanie počítača bolesť zápästia alebo prstov? Trpíte stuhnutými kĺbmi a neustále si musíte podávať ruky? Cítite pálivú bolesť z...
Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...
S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...