پاک‌کردن فهرست استندبای حافظهٔ ویندوز (ISLC) و رفع استاتر

آخرین به‌روزرسانی ۱۴۰۵/۷/۲۴ · حدود ۶ دقیقه مطالعه

ویندوز حافظه آزاد را بی‌استفاده رها نمی‌کند: فایل‌ها و بافت‌هایی که اخیراً خوانده شده‌اند در «فهرست استندبای» به‌عنوان کش نگه داشته می‌شوند. این کش معمولاً مفید است، اما وقتی حافظه در حال پر شدن است، آزادسازی و دوباره پر شدن همان صفحات می‌تواند لحظه‌های ریز استاتر بسازد. پاک‌کردن فهرست استندبای در زمان مناسب — نه هر دقیقه — این لحظه‌ها را کم می‌کند.

فهرست استندبای، حافظهٔ آزاد و Working set چه تفاوتی دارند؟

Working set حافظه‌ای است که برنامه‌ها فعالانه استفاده می‌کنند. حافظهٔ آزاد کاملاً آزاد است. فهرست استندبای حافظه‌ای است که دیگر فعال نیست ولی محتوایش معتبر مانده و به‌عنوان کش قابل استفاده است.

مشکل وقتی شروع می‌شود که حافظه آزاد کم باشد: مدیر حافظه باید همان صفحات cached را آزاد کند تا به برنامه درخواست‌کننده جا بدهد. این آزادسازی یک عملیات همگام است و می‌تواند یک وقفهٔ کوتاه در فریم ایجاد کند. پاک‌کردن پیش‌دستانهٔ فهرست، این وقفه را به زمانی منتقل می‌کند که در حال بازی نیستید.

روش دستی ۱: RAMMap (رایگان از مایکروسافت)

RAMMap ابزار رسمی Sysinternals است و بدون نصب اجرا می‌شود. با آن می‌توانید مصرف حافظه را به‌تفکیک نوع ببینید و فهرست استندبای را خالی کنید.

  1. RAMMap را از سایت رسمی Sysinternals دانلود و اجرا کنید (Run as administrator).
  2. تب‌های Use Counts و Physical Pages را ببینید تا بدانید فهرست استندبای چقدر بزرگ است.
  3. از منوی Empty گزینه Empty Standby List را بزنید.
  4. مقدار فهرست استندبای را دوباره چک کنید؛ باید نزدیک صفر شده باشد.

روش دستی ۲: EmptyStandbyList.exe + Task Scheduler

برای پاک‌سازی خودکار به‌محض پرشدن فهرست، می‌توانید EmptyStandbyList.exe را در Task Scheduler قرار دهید. الگوی متداول این است که هر ۵ دقیقه یک‌بار اجرا شود؛ ولی بهترین حالت «اجرا در لحظه‌ای که فهرست از یک آستانه گذشت» است، چون پاک‌کردن بی‌دلیل، کش مفید ویندوز را از بین می‌برد.

  1. فایل EmptyStandbyList.exe را در یک مسیر ثابت مثل C:\Tools بگذارید.
  2. Task Scheduler → Create Task؛ در تب General گزینه Run with highest privileges را تیک بزنید.
  3. Trigger: Daily و Repeat task every 5 minutes؛ در Action، مسیر فایل را با آرگومان emptystandbylist وارد کنید.
  4. برای حذف کامل: تسک را Disable یا Delete کنید؛ هیچ تغییری در خود ویندوز باقی نمی‌ماند.

روش ساده: Frame Boost با ISLC داخلی

Frame Boost منطق ISLC را داخل خودش دارد: آستانهٔ حجم فهرست، آستانهٔ حافظه آزاد و بازهٔ بررسی را می‌بینید و پاک‌سازی فقط وقتی انجام می‌شود که واقعاً لازم باشد. همه‌چیز در لحظه قابل خاموش کردن است و وابسته به Task Scheduler یا فایل خارجی نیست.

  1. در Frame Boost گروه ISLC را روشن کنید.
  2. مقدار List size را روی حدود ۱۰۲۴ مگابایت و Free memory را روی حدود ۱۰۲۴ مگابایت بگذارید (برای سیستم‌های ۱۶ گیگ به بالا).
  3. بازهٔ بررسی (Polling) را روی ۵۰۰ میلی‌ثانیه نگه دارید؛ کمتر از آن سودی ندارد.
  4. برای خاموش کردن، گروه را غیرفعال کنید؛ کش ویندوز خودش دوباره پر می‌شود.

چه زمانی این کار بی‌فایده است؟

اگر حافظه آزاد شما همیشه بیش از ۴ گیگابایت است، پاک‌سازی فهرست استندبای تقریباً هیچ اثری روی فریم‌تایم ندارد. همچنین اگر استاتر از حرارت، محدودیت توان یا درایور گرافیک باشد، این تنظیم آن را حل نمی‌کند. قبل از هر تغییری، فریم‌تایم را با PresentMon اندازه بگیرید و بعد مقایسه کنید.

پرسش‌های پرتکرار

آیا پاک‌کردن فهرست استندبای به SSD آسیب می‌زند؟

خیر. این عملیات فقط کش را در حافظه رها می‌کند و نوشتنی روی دیسک انجام نمی‌دهد؛ فقط دفعهٔ بعد فایل‌ها از دیسک دوباره خوانده می‌شوند. به همین دلیل هم نباید هر ثانیه تکرار شود.

هرچند وقت یک‌بار پاک کنم؟

بهترین حالت، پاک‌سازی در لحظهٔ پر شدن فهرست است نه با زمان‌بندی ثابت. اگر مجبور به زمان‌بندی هستید، ۵ تا ۱۰ دقیقه یک‌بار کافی است.

تفاوت Frame Boost و ISLC چیست؟

Frame Boost همان منطق را داخل اپلیکیشن و همراه با بقیهٔ تنظیمات (تایمر، Game Mode، شبکه) انجام می‌دهد و در گروه ISLC قابل خاموش و روشن است.

همین تنظیمات را با یک کلیک و بازگشت‌پذیر اعمال کنید

Frame Boost همین تغییرات را هنگام اجرا اعمال می‌کند و با بستن برنامه همه‌چیز را بازمی‌گرداند. گروه Timer Resolution رایگان است.

راهنماهای مرتبط