Производителността на System.Diagnostics.StackFrame се влошава в Windows 10
Ако след като надстроите до Windows 10 или .NET Framework 4.7.1 и забележите значително намаляване на производителността, когато стартирате приложения на .NET Framework, които използват класа System.Diagnostics.StackFrame , тогава тази публикация може да ви заинтересува. (System.Diagnostics.StackFrame)Ще разгледаме причината и след това ще предложим известни корекции на грешката.
Влошава се производителността на System.Diagnostics.StackFrame
Приложение, което има приемлива производителност, работещо на .NET Framework 4.7 или по-ранни версии, се изпълнява по-бавно, когато се изпълнява на .NET Framework 4.7.1 . Приложенията обикновено разчитат на StackFrame, когато хвърлят .NET изключения. Ако това се случи с висока скорост (повече от 10 инцидента в секунда), приложенията могат да се забавят значително (десетократно) и да работят значително по-бавно от преди.
Причина за влошаване на производителността на System.Diagnostics.StackFrame(Cause of the System.Diagnostics.StackFrame performance degrade)
.NET Framework 4.7.1 в Windows 10 добави поддръжка за откриване и синтактичен анализ на файловия формат Portable PDB , за да се покаже информация за номера на файла и ред в стека. Като част от тази промяна, всяка функция в трасиране на стека има проверен дефиниращ модул, за да се определи дали този модул използва Portable PDB формата. Поради(Due) някои разлики във вътрешната политика за кеширане, времето за изпълнение прекарва много повече време в търсене на преносими PDB,(Portable PDBs) отколкото предишните версии на .NET Framework , прекарани в търсене на класически PDB на Windows(Windows PDBs) .
Това кара форматираните стек следи да се произвеждат по-бавно от преди.
Този проблем не променя броя на хвърлените изключения. Това обаче значително намалява способността на приложенията да обработват тези изключения.
Известно е , че приложенията, които използват библиотека IKVM , са засегнати от този проблем, ако проверяват за сглобки. Известно е, че сондирането за монтажи причинява изключения.
Поправете(Fix System.Diagnostics.StackFrame) проблема с влошаването на производителността на System.Diagnostics.StackFrame
За да разрешите този проблем, Microsoft препоръчва използването на един от следните методи.
1] Използвайте различен конструктор за StackFrame, който приема булев аргумент(1] Use a different constructor for StackFrame that takes a Boolean argument)
Това е предпочитаното решение.
Ако разработчиците на приложения могат да правят промени в своите приложения, извикайте (call the) System.Diagnostics.StackTrace. #ctor( Boolean ) конструктор чрез използване на фалшив аргумент, за да се избегне улавянето на информация за източника. Това избягва частта от кода, в която производителността е намалена.
2] Отмяна или надстройка до най-новата версия на Windows 10(2] Rollback or upgrade to the latest Windows 10 version)
При този метод се върнете към предишната версия/комплектиране или upgrade to the latest version/build на Windows 10 , ако изпитвате този проблем и в момента не използвате най-новата версия на Windows 10 . Също така деинсталирайте .NET Framework 4.7.1 , ако има такъв, от вашия компютър и след това изтеглете(download) и инсталирайте предишна версия или най-новата версия на .NET Framework .
Hope this helps!
Related posts
Как да проверите версията на .NET Framework, инсталирана на компютър с Windows 10
Поправете грешка 0x800F080C при инсталиране на .NET Framework на Windows 10
Изберете къде да получите опцията за приложения, оцветена в сиво в настройките на Windows 10
Базираната на CMAK VPN не работи след надстройка на Windows 10
Облачният клипборд (Ctrl+V) не работи или не се синхронизира в Windows 10
Компютърът е неправилно открит като извън мрежата на домейна
Как да деактивирате преносими класове за съхранение и достъп в Windows 10
Как да деактивирате автоматичните актуализации на драйвери в Windows 10
Отстраняване на проблеми с принтера, блокиран в офлайн състояние в Windows
Как да деактивирате предпазните мерки за актуализации на функции в Windows 10
MSVCR71.dll липсва на компютъра с Windows 10
Открита е потенциална грешка в базата данни за актуализиране на Windows в Windows 10
Самолетният режим затъмни Windows 10
Поправете грешката RPC сървърът е недостъпен в Windows 10
Ashampoo WinOptimizer е безплатен софтуер за оптимизиране на Windows 10
SID се показва вместо потребителско име или приятелско име в Windows 10
Самолетният режим няма да се изключи в Windows 10
Нуждаете се от разрешение, за да извършите това действие в Windows 10 [Коригирано]
Проблеми с функцията CreateWindowEx за 32-битови приложения в Windows 10
Активирайте превключвателя Stream HDR video след надстройка на Windows 10