عملکرد System.Diagnostics.StackFrame در ویندوز 10 کاهش می یابد
اگر پس از ارتقاء به Windows 10 یا .NET Framework 4.7.1 ، و هنگام اجرای برنامه های NET Framework که از کلاس System.Diagnostics.StackFrame استفاده می کنند، کاهش قابل توجهی در عملکرد مشاهده کردید ، ممکن است این پست برای شما جالب باشد. ما علت را بررسی می کنیم و سپس راه حل های شناخته شده ای برای خطا ارائه می دهیم.
عملکرد System.Diagnostics.StackFrame کاهش می یابد
برنامهای که عملکرد قابل قبولی داشت که روی داتنت فریمورک 4.7 یا نسخههای قبلی اجرا میشد، هنگام اجرا بر روی (.NET Framework 4.7)داتنت فریمورک 4.7.1(.NET Framework 4.7.1) کندتر اجرا میشود . برنامهها معمولاً زمانی که استثناهای داتنت را پرتاب میکنند به StackFrame متکی هستند. اگر این با سرعت بالا (بیش از 10 حادثه در ثانیه) اتفاق بیفتد، برنامه ها می توانند به طور قابل توجهی (ده برابر) کندتر شوند و به طور قابل توجهی کندتر از قبل اجرا شوند.
علت کاهش عملکرد System.Diagnostics.StackFrame(Cause of the System.Diagnostics.StackFrame performance degrade)
NET Framework 4.7.1 در ویندوز 10(Windows 10) پشتیبانی از شناسایی و تجزیه فرمت فایل PDB قابل حمل را برای نمایش اطلاعات فایل و شماره خط در ردیابی پشته اضافه کرد. به عنوان بخشی از این تغییر، هر تابع در یک ردیابی پشته ماژول تعیین کننده خود را بررسی می کند تا مشخص شود آیا آن ماژول از قالب PDB قابل حمل استفاده می کند یا خیر . با توجه(Due) به برخی تفاوتها در سیاست کش داخلی، زمان اجرا زمان بسیار بیشتری را صرف جستجوی PDBهای قابل حمل(Portable PDBs) نسبت به نسخههای قبلی .NET Framework میکند که صرف جستجوی PDBهای کلاسیک ویندوز میشود(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)
این راه حل ترجیحی است.
اگر توسعه دهندگان برنامه قادر به ایجاد تغییرات در برنامه های خود هستند، با System.Diagnostics.StackTrace تماس بگیرید . (call the) سازنده #ctor( Boolean ) با استفاده از یک آرگومان نادرست برای جلوگیری از گرفتن اطلاعات منبع. با این کار بخشی از کد که در آن عملکرد کاهش یافته است، جلوگیری می کند.
2] بازگشت یا ارتقاء به آخرین نسخه ویندوز 10(2] Rollback or upgrade to the latest Windows 10 version)
در این روش، اگر با این مشکل مواجه هستید و در حال حاضر از آخرین نسخه ویندوز 10(Windows 10) استفاده نمیکنید، به نسخه/بیلد قبلی برگردید یا upgrade to the latest version/buildویندوز 10(Windows 10) ارتقا دهید . همچنین در صورت وجود، .NET Framework 4.7.1 را از رایانه خود حذف نصب کنید و سپس نسخه قبلی یا آخرین نسخه NET Framework را دانلود(download) و نصب کنید .
Hope this helps!
Related posts
نحوه بررسی .NET Framework version بر روی Windows 10 PC نصب شده است
Fix Error 0x800F080C هنگام نصب .NET Framework در Windows 10
را انتخاب کنید که برای دریافت برنامه های گزینه در تنظیمات Windows 10 خاکستری
VPN مبتنی بر CMAK پس از ارتقاء Windows 10 کار نمی کند
Cloud Clipboard (Ctrl+V) در Windows 10 کار نمی کند یا همگام سازی نمی کند
MSVCR71.dll از Windows 10 کامپیوتر گم شده است
CreateWindowEx function مسائل مربوط به برنامه های 32 بیتی در Windows 10
PicsArt ارائه می دهد Custom Stickers & Exclusive 3D Editing در Windows 10
شما نیاز به مجوز برای انجام این عمل در Windows 10 [ثابت]
Desktop آیکون ها پس از راه اندازی مجدد در Windows 10 rearrange and move
Ashampoo WinOptimizer نرم افزار رایگان برای بهینه سازی Windows 10 است
عیب یابی یخ زدن یا قفل شدن تصادفی ویندوز 10
Quick Assist کار نمی کند Stuck در Loading یا اتصال به Windows 10
این برنامه نمی تواند شروع به دلیل MSVCP140.dll در Windows 10 از دست رفته
Windows couldn't تغییرات درخواستی را تکمیل
نحوه غیر فعال کردن پادمان برای Feature Updates در Windows 10
فعال کردن Stream HDR video سوئیچ پس از Windows 10 ارتقاء
عیب یابی ویندوز 10 به حالت Sleep نمی رود
Airplane mode در Windows 10 خاموش نخواهد شد
نحوه غیرفعال کردن کلاس های ذخیره سازی قابل جابجایی و دسترسی به Windows 10