مدتی بود که سرعت آغاز ویژوال استودیو و همچنین تمام برنامههای دات نتی موجود، به نحو عجیبی کاهش پیدا کرده بودند. آغاز ویژوال استودیو گاهی تا 3 دقیقه هم طول میکشید. تا اینکه آغاز یک برنامه سادهی دات نتی را توسط برنامهی معروف Procmon بررسی کردم:
بله. همانطور که مشاهده میکنید، چون تعداد فونتهای نصب شدهی بر روی سیستم من بیش از اندازه است (1800 فونت)، این مشکل رخ میدهد. هر بار آغاز برنامههای دات نت، به همراه بررسی تمام فونتهای نصب شدهی بر روی سیستم هم هست و اگر تعداد آنها زیاد باشد، شاید چند دقیقهای این بررسی طول بکشد.
راه حلها
الف) حذف فونتهای اضافی سیستم
این مورد به طور قطع بر روی سایر برنامههای غیردات نتی هم تاثیر مثبت خواهد گذاشت. برای نمونه، این مورد بارگذاری فونتها، در مرورگرها هم صادق است. به علاوه مصرف RAM سیستم را هم کاهش خواهد داد.
برای حذف فونتهای اضافی:
- ابتدا به مسیر C:\Windows\Fonts مراجعه کنید. در لیست فونتها، ابتدا ctrl+a و سپس delete. بله! حذف تمام فونتها، تا جایی که ممکن است.
- در ادامه ویندوز به صورت توکار، قابلیت بازگشت به لیست ابتدایی سیستمی خود را دارد (جهت ترمیم مواردی که نباید حذف میشدند). برای این منظور باید مراحل ذیل را طی کنید:
و یا مراجعهی مستقیم به پوشهی C:\Windows\Fonts نیز معادل طی مسیر فوق است:
با کلیک بر روی دکمهی «Restore Default Font Settings» قلمهای اصلی ویندوز مجددا نصب خواهند شد و سیستم به حالت اول باز میگردد.
ب) تنظیم سرویس Font Cache ویندوز
سرویس ویژهای به نام «Windows Presentation Foundation Font Cache 3.0.0.0» در ویندوزهایی که دات نت فریم ورک بر روی آنها نصب است، وجود دارد:
کار آن کش کردن و به اشتراک گذاشتن اطلاعات قلمهای نصب شدهی بر روی سیستم، بین تمام برنامههای WPF در حال اجرا است.
حالت آغاز این سرویس بر روی manual است. به این معنا که تا یک برنامهی WPF ایی بر روی سیستم اجرا نشود، این سرویس فعال نخواهد شد. میتوان این حالت آغاز را بر روی automatic قرار داد تا به تمام برنامههای WPF سیستم به صورت یکسانی، پیش از اجرای آنها اعمال شود.
این تغییر توسط مایکروسافت هم توصیه شدهاست: «12. Understand the PresentationFontCache service »
نتیجه گیری
اگر آغاز برنامهی دات نتی شما آنچنان سریع نیست، الزاما مشکل از Entity framework نیست. چه تعدادی فونت را نصب کردهاید؟!
بله. همانطور که مشاهده میکنید، چون تعداد فونتهای نصب شدهی بر روی سیستم من بیش از اندازه است (1800 فونت)، این مشکل رخ میدهد. هر بار آغاز برنامههای دات نت، به همراه بررسی تمام فونتهای نصب شدهی بر روی سیستم هم هست و اگر تعداد آنها زیاد باشد، شاید چند دقیقهای این بررسی طول بکشد.
راه حلها
الف) حذف فونتهای اضافی سیستم
این مورد به طور قطع بر روی سایر برنامههای غیردات نتی هم تاثیر مثبت خواهد گذاشت. برای نمونه، این مورد بارگذاری فونتها، در مرورگرها هم صادق است. به علاوه مصرف RAM سیستم را هم کاهش خواهد داد.
برای حذف فونتهای اضافی:
- ابتدا به مسیر C:\Windows\Fonts مراجعه کنید. در لیست فونتها، ابتدا ctrl+a و سپس delete. بله! حذف تمام فونتها، تا جایی که ممکن است.
- در ادامه ویندوز به صورت توکار، قابلیت بازگشت به لیست ابتدایی سیستمی خود را دارد (جهت ترمیم مواردی که نباید حذف میشدند). برای این منظور باید مراحل ذیل را طی کنید:
Start > Control Panel -> Appearance and Personalization -> Fonts -> Font Settings -> Restore Default Font Settings
با کلیک بر روی دکمهی «Restore Default Font Settings» قلمهای اصلی ویندوز مجددا نصب خواهند شد و سیستم به حالت اول باز میگردد.
ب) تنظیم سرویس Font Cache ویندوز
سرویس ویژهای به نام «Windows Presentation Foundation Font Cache 3.0.0.0» در ویندوزهایی که دات نت فریم ورک بر روی آنها نصب است، وجود دارد:
کار آن کش کردن و به اشتراک گذاشتن اطلاعات قلمهای نصب شدهی بر روی سیستم، بین تمام برنامههای WPF در حال اجرا است.
حالت آغاز این سرویس بر روی manual است. به این معنا که تا یک برنامهی WPF ایی بر روی سیستم اجرا نشود، این سرویس فعال نخواهد شد. میتوان این حالت آغاز را بر روی automatic قرار داد تا به تمام برنامههای WPF سیستم به صورت یکسانی، پیش از اجرای آنها اعمال شود.
این تغییر توسط مایکروسافت هم توصیه شدهاست: «12. Understand the PresentationFontCache service »
نتیجه گیری
اگر آغاز برنامهی دات نتی شما آنچنان سریع نیست، الزاما مشکل از Entity framework نیست. چه تعدادی فونت را نصب کردهاید؟!