وقتی یک بازی روی کامپیوتر ناگهان هر چند دقیقه یکبار لگ میزند، اولین مظنون معمولاً کارت گرافیک است. مخصوصاً اگر بازی سنگینی مثل Baldur’s Gate 3 اجرا میکنید و بعد از مدتی بازی روان، ناگهان stutter و افت ریتم فریم دیده میشود. اما اگر مصرف GPU، دما و VRAM طبیعی هستند، احتمال دارد مشکل جای دیگری باشد.

در تجربهای که MakeUseOf روایت کرده، کارت گرافیک RTX 4070 مقصر نبود. عامل اصلی به رفتار حافظه مجازی ویندوز و فایل pagefile.sys برمیگشت؛ موضوعی که معمولاً کمتر از GPU به آن توجه میکنیم، اما میتواند frame pacing را بههم بریزد.

چرا کارت گرافیک الزاماً مقصر نیست؟
اگر کارت گرافیک واقعاً گلوگاه باشد، در لحظههای سنگین معمولاً انتظار داریم مصرف GPU نزدیک ۹۹ یا ۱۰۰ درصد بماند، دما بالا برود یا VRAM به سقف ظرفیت خود نزدیک شود. اما در این مورد، مصرف GPU حدود ۷۰ تا ۸۰ درصد بود، دما زیر ۷۰ درجه سانتیگراد میماند و حافظه ویدئویی ۱۲ گیگابایتی هم پر نشده بود.
نکته مهم این بود که نرخ فریم میانگین الزاماً تغییر عجیبی نشان نمیداد؛ چیزی که خراب میشد، نظم رسیدن فریمها بود. به زبان ساده، بازی شاید روی کاغذ هنوز FPS قابل قبولی داشت، اما فاصله زمانی بین فریمها ناپایدار میشد و کاربر آن را به شکل لگ و مکثهای آزاردهنده حس میکرد.

حافظه مجازی ویندوز چه نقشی دارد؟
ویندوز برای مدیریت شرایطی که حافظه فیزیکی کافی نیست، از فایلی به نام pagefile.sys روی درایو سیستم استفاده میکند. دادههایی که در آن لحظه فعال نیستند میتوانند از RAM به pagefile منتقل شوند تا فضای RAM برای کارهای ضروریتر آزاد شود.
این سازوکار یک «قابلیت افزایش سرعت» نیست؛ بیشتر شبیه تور ایمنی است. RAM با تأخیر بسیار پایین در حد نانوثانیه کار میکند، اما pagefile روی فضای ذخیرهسازی قرار دارد و دسترسی به آن چندین مرتبه کندتر از RAM است. بنابراین وقتی ویندوز مجبور شود در زمان بازی زیاد از pagefile داده بخواند یا در آن بنویسد، نتیجه میتواند همان stutter باشد.
| بخش | RAM | Page file |
|---|---|---|
| سرعت دسترسی | بسیار سریع، در حد نانوثانیه | وابسته به سرعت ذخیرهساز و بسیار کندتر از RAM |
| نقش | نگهداری دادههای فعال | نگهداری دادههای سرریز یا کمتر فعال |
| محل قرارگیری | ماژولهای حافظه | درایو سیستم |

قبل از تغییر تنظیمات، چطور مطمئن شویم مشکل از حافظه است؟
بهتر است قبل از دستکاری تنظیمات ویندوز، چند دقیقه وضعیت حافظه را زیر نظر بگیرید. Task Manager را باز کنید، به مسیر Performance > Memory بروید و همان کاری را انجام دهید که معمولاً باعث لگ میشود؛ مثلاً وارد همان بخش سنگین بازی شوید.
شاخص مهم فقط مقدار RAM مصرفشده نیست. به عدد Committed توجه کنید. اگر committed memory به ظرفیت RAM نصبشده نزدیک میشود یا فقط یکی دو گیگابایت با سقف فاصله دارد، یعنی سیستم زیر فشار حافظه است و ویندوز ممکن است بیشتر به pagefile تکیه کند.
در Resource Monitor هم عدد Hard Faults/sec در تب Memory ارزش بررسی دارد. hard fault زمانی رخ میدهد که ویندوز مجبور است دادهای را از ذخیرهساز برگرداند، چون در RAM فیزیکی حاضر نیست. چند مورد پراکنده طبیعی است، اما اگر عدد برای مدتی طولانی بالا بماند یا به صدها مورد در ثانیه برسد، احتمال ارتباط مشکل با حافظه جدیتر میشود.

چه چیزهایی را با مشکل pagefile اشتباه نگیریم؟
تنظیم pagefile همه نوع stutter را درمان نمیکند. اگر لگ فقط هنگام ورود به یک منطقه جدید رخ میدهد، ممکن است مربوط به کامپایل shader باشد. اگر مشکل از کمبود VRAM باشد، معمولاً pop-in بافتها و مصرف بسیار بالای GPU را میبینید. اگر هم کلاک GPU افت و برگشت واضح دارد، باید thermal throttling یا محدودیت توان را بررسی کنید.
- stutter ناشی از shader معمولاً موقتی و وابسته به ورود به محیطهای جدید است.
- کمبود VRAM بیشتر با دیر ظاهر شدن بافتها و مصرف نزدیک به سقف GPU همراه است.
- thermal throttling معمولاً خودش را با افت کلاک و افزایش دما نشان میدهد.
تنظیم ثابت pagefile؛ راهحل قطعی نیست، اما گاهی کمک میکند
حالت پیشفرض ویندوز این است که اندازه pagefile را خودش مدیریت کند. این گزینه برای بیشتر کاربران مناسب است و حتی مایکروسافت هم معمولاً توصیه میکند فقط در صورت داشتن دلیل مشخص آن را تغییر دهید. اما در سناریویی که فشار حافظه پایدار است، ثابت کردن اندازه pagefile میتواند از تغییر اندازه آن در زمان کار جلوگیری کند و بخشی از overhead را کاهش دهد.
برای تنظیم دستی، مسیر کلی در ویندوز این است:
- کلیدهای Windows + R را بزنید، عبارت sysdm.cpl را وارد کنید و Enter بزنید.
- در پنجره System Properties به تب Advanced بروید.
- در بخش Performance روی Settings کلیک کنید.
- دوباره به تب Advanced بروید و زیر Virtual Memory گزینه Change را انتخاب کنید.
- گزینه Automatically manage paging file size for all drives را غیرفعال کنید.
- درایو سیستم را انتخاب کنید، Custom size را بزنید و مقدار Initial size و Maximum size را برابر قرار دهید.
- OK کنید و سیستم را ریاستارت کنید.
در مثال MakeUseOf، مقدار هر دو بخش روی 24,576MB تنظیم شده بود؛ یعنی حدود ۱.۵ برابر RAM همان سیستم. این عدد نسخه عمومی برای همه نیست. اگر RAM، فضای ذخیرهسازی یا نوع استفاده شما متفاوت است، باید محافظهکارانهتر تصمیم بگیرید و قبل از تغییر، وضعیت واقعی سیستم خودتان را بسنجید.
جمعبندی: همه stutterها از کارت گرافیک نیستند
این تغییر قرار نیست RAM بیشتری به سیستم اضافه کند و قرار نیست همه لگهای بازی را از بین ببرد. مزیت احتمالی آن این است که وقتی سیستم واقعاً زیر فشار حافظه است، رفتار pagefile قابلپیشبینیتر شود و وقفههای ناشی از مدیریت اندازه آن کمتر دیده شود.
اگر GPU سالم به نظر میرسد، دما طبیعی است و VRAM پر نشده، بهتر است قبل از خرید قطعه جدید یا نصب دوباره درایورها، چند دقیقه Task Manager و Resource Monitor را بررسی کنید. گاهی مشکل از جایی است که کمتر به چشم میآید: حافظه مجازی ویندوز.
منبع: این مطلب یک بازنویسی و بومیسازی تحریریهای بر پایه مقالهای از MakeUseOf است: مشاهده مقاله اصلی.