Смањење перформанси Систем.Диагностицс.СтацкФраме у Виндовс 10

Ако након надоградње на Виндовс 10 или .НЕТ Фрамеворк 4.7.1 приметите значајно смањење перформанси када покренете .НЕТ Фрамеворк апликације које користе класу Систем.Диагностицс.СтацкФраме(System.Diagnostics.StackFrame) , онда би овај пост могао да вас занима. Погледаћемо узрок, а затим понудити познате исправке за грешку.

Смањење перформанси Систем.Диагностицс.СтацкФраме

Смањење перформанси Систем.Диагностицс.СтацкФраме

Апликација која је имала прихватљиве перформансе покренута на .НЕТ Фрамеворк 4.7(.NET Framework 4.7) или старијим верзијама извршава се спорије када је покренута на .НЕТ Фрамеворк 4.7.1(.NET Framework 4.7.1) . Апликације се обично ослањају на СтацкФраме када убацују .НЕТ изузетке. Ако се ово дешава великом брзином (више од 10 инцидената у секунди), апликације могу значајно успорити (десетоструко) и радити приметно спорије него раније.

Узрок смањења перформанси система Систем.Диагностицс.СтацкФраме(Cause of the System.Diagnostics.StackFrame performance degrade)

.НЕТ Фрамеворк 4.7.1(.NET Framework 4.7.1) у оперативном систему Виндовс 10(Windows 10) додао је подршку за откривање и рашчлањивање формата Портабле ПДБ(PDB) датотеке да би се приказале информације о броју датотеке и линије у траговима стека. Као део ове промене, свака функција у праћењу стека има проверу свог модула за дефинисање да би се утврдило да ли тај модул користи Портабле ПДБ(PDB) формат. Због(Due) неких разлика у интерној политици кеширања, време извођења троши много више времена на тражење преносивих ПДБ-ова(Portable PDBs) него претходне верзије .НЕТ Фрамеворк(Framework) -а које су трошиле на тражење класичних Виндовс ПДБ-ова(Windows PDBs) .

Ово узрокује да се форматирани трагови стека производе спорије него раније.

Ово питање не мења број изузетака који се бацају. Међутим, то значајно смањује способност апликација да обрађују те изузетке.

Познато је да су апликације које користе ИКВМ(IKVM) библиотеку погођене овим проблемом ако траже склопове. Познато је да испитивање склопова изазива изузетке.

(Fix System.Diagnostics.StackFrame)Решите проблем са смањењем перформанси Систем.Диагностицс.СтацкФраме

Да бисте решили овај проблем, Мицрософт(Microsoft) препоручује коришћење једног од следећих метода.

1] Користите други конструктор за СтацкФраме који узима Булов аргумент(1] Use a different constructor for StackFrame that takes a Boolean argument)

Ово је пожељно решење.

Ако програмери апликација могу да изврше промене у својим апликацијама, позовите (call the) Систем.Диагностицс.СтацкТраце. (System.Diagnostics.StackTrace.)#цтор( Боолеан(Boolean) ) конструктор коришћењем лажног аргумента да би се избегло хватање изворних информација. Ово избегава део кода у коме је перформанса смањена.

2] Вратите или надоградите на најновију верзију Виндовс 10(2]  Rollback or upgrade to the latest Windows 10 version)

Овим методом, вратите се на претходну верзију/изградњу или upgrade to the latest version/build оперативног  система Виндовс 10(Windows 10) ако имате овај проблем и тренутно не користите најновију верзију оперативног система Виндовс 10(Windows 10) . Такође деинсталирајте .НЕТ Фрамеворк 4.7.1 ако постоји, са свог рачунара, а затим преузмите(download) и инсталирајте претходну верзију или најновију верзију .НЕТ Фрамеворк(.NET Framework) -а .

Hope this helps!



About the author

Ја сам хардверски инжењер са преко 10 година искуства у раду на ИОС и МацОС системима. Такође сам био наставник у вечерњим часовима последњих 5 година и сам сам научио како да користим Гоогле Цхроме. Моје вештине у обе области чине ме савршеним кандидатом за развој веб страница, графички дизајн или рад на безбедности на вебу.



Related posts