وقتی نمودار حافظه را در «مدیر وظایف» رایانه 8GB خود میدیدم، بیشتر اوقات احساس میکردم حافظه رم رو به پایان است. این نگرانی همیشه هنگام کار با دستگاه گوشه ذهنم باقی میماند. وقتی وضعیت را بررسی کردم، میزان مصرف رم به ۹۱% رسیده بود و حس کردم باید علتش را پیدا کنم.
این بار به سراغ RAMMap رفتم؛ ابزاری رایگان از مجموعه Sysinternals خود مایکروسافت. این برنامه حافظه رم را به شکلی دستهبندی میکند که تقریباً در همان نگاه نخست میتوان وضعیتش را فهمید؛ نتیجهای هم که نشانم داد با انتظارم متفاوت بود.
ریز مصرف حافظه در رممپ
آن ۹۱% واقعاً از چه چیزهایی تشکیل شده بود؟





صفحه Use Counts در RAMMap حافظه را بر پایه کاری دستهبندی میکند که هر صفحه در همان لحظه انجام میدهد. «مدیر وظایف» مصرف حافظه را ۷.1GB از مجموع ۷.8GB نشان میداد؛ عددی که بدون توضیح بیشتر نگرانکننده بود.
RAMMap در ستون Active مقدار ۶.96GiB حافظه فیزیکی و در بخش Standby مقدار ۵۸۰ MiB را نشان داد. مقدار Standby همان دادههای ذخیرهشده در حافظه نهان بود، اما عامل بالا بودن عدد In use در «مدیر وظایف» به شمار نمیرفت.
| دستهبندی RAMMap | رایانه من | مفهوم این عدد |
|---|---|---|
| فعال (Active) | مقدار حافظه: ۶.9GiB | صفحههایی که هماکنون برنامهها، ویندوز و دیگر اجزای سامانه بهطور فعال از آنها استفاده میکنند |
| آمادهبهکار (Standby) | مقدار حافظه: 580MiB | صفحههای ذخیرهشده در حافظه نهان که ویندوز میتواند هنگام نیاز بازپس بگیرد |
| تغییریافته (Modified) | مقدار حافظه: 263MiB | صفحههای تغییریافتهای که معمولاً پیش از استفاده دوباره باید روی فضای ذخیرهسازی نوشته شوند |
| آزاد و صفرشده (Free + Zeroed) | مقدار حافظه: ~36MiB | صفحههای آماده استفاده دوباره؛ صفحههای صفرشده نیز از پیش پاک شدهاند |
اعداد «مدیر وظایف» نگرانم کرده بودند، اما RAMMap بیش از آنچه انتظار داشتم آنها را تأیید کرد. مجموع Active و Modified حدود ۷.2GiB بود که به عدد In use نمایشدادهشده در «مدیر وظایف» نزدیک است. در دومین ثبت وضعیت نیز الگوی مشابهی دیدم. در واقع «مدیر وظایف» اشتباه نمیکرد؛ فقط نشان نمیداد این عدد از چه بخشهایی تشکیل شده است، و RAMMap دقیقاً در همین زمینه بهتر عمل کرد.
حافظه آمادهبهکار
حاشیه امن پنهان در 685MB حافظه دردسترس

ویندوز با حافظه Standby همانگونه رفتار میکند که شما با میز کارتان: هر چیزی را بلافاصله کنار نمیگذارد. ویندوز تمام صفحههای پاکِ مربوط به برنامه یا فایلی را که بهتازگی استفاده شدهاند، فوراً دور نمیریزد. این صفحهها میتوانند در حالت Standby باقی بمانند تا بدون نیاز به خواندن دوباره دادهها از فضای ذخیرهسازی، باز هم به کار گرفته شوند. هرگاه برنامهای به حافظه نیاز داشته باشد، ویندوز میتواند صفحههای آمادهبهکار را بازپس بگیرد. به همین دلیل، بالا بودن مقدار Standby بهخودیخود نشانه مشکل نیست.
نکته جالب این بود که «مدیر وظایف» مقدار Available را 685MB نشان میداد، در حالی که حدود 580MiB در حالت Standby قرار داشت و فقط 36MiB واقعاً Free بود. چون دادههای دو ابزار را دقیقاً در یک لحظه ثبت نکرده بودم، نتوانستم اعداد کاملاً یکسانی به دست آورم؛ بااینحال، الگوی مشابهی دیدم: هر دو ابزار تقریباً تمام حافظه Available را حافظه نهان به شمار میآوردند.
این رفتار بخشی آگاهانه از طراحی ویندوز است. ویندوز حافظه Standby را دردسترس حساب میکند، زیرا هنگام نیاز میتواند آن صفحهها را بازپس بگیرد. بنابراین اگر فقط عدد Free را ببینید، ممکن است فضای مانور واقعی سامانه را بسیار کمتر از مقدار حقیقی برآورد کنید.
صفحههای Modified جزو حافظه نهان شمرده میشوند، نه Available؛ زیرا ممکن است دادههای تغییریافتهای داشته باشند که ابتدا باید روی فضای ذخیرهسازی نوشته شوند.
آزمایش حافظه آمادهبهکار
حافظه نهان را خالی کردم و مقدار دردسترس کاهش یافت

میخواستم ببینم آیا میتوانم بخشی از حافظه را آزاد کنم؛ بنابراین از گزینه Empty Standby List در منوی Empty برنامه RAMMap استفاده کردم. پیش از آزمایش این گزینه، RAMMap را در نشستی جداگانه اجرا کردم و مجموعهای مشابه از برنامهها، از جمله مرورگر و چند برنامه پسزمینه، نیز در حال اجرا بودند.
| پیش از آزمایش | پس از آزمایش | |
|---|---|---|
| آمادهبهکار | ۹۹۶ مبیبایت | ۲۵۸ مبیبایت |
| آزاد + صفرشده | ۳۴۲ مبیبایت | ۶۸۰ مبیبایت |
| فعال | ۶٫۲۶ گیبیبایت | ۶٫۷۰ گیبیبایت |
| حافظه در دسترس در Task Manager | 1.32GB | 921MB |
حجم مجموعه آزاد/صفرشده تقریباً دو برابر شد؛ همان عددی که بسیاری از ابزارهای پاکسازی RAM با آبوتاب نشان میدهند. بااینحال، مقدار حافظه در دسترس از ۱٫۳ گیگابایت به ۹۲۱ مگابایت کاهش یافت؛ نتیجهای منطقی، چون حافظه آمادهبهکار نیز بخشی از حافظه در دسترس بهشمار میآید.
با خالیکردن فهرست آمادهبهکار، در واقع صفحههای حافظه را با موفقیت از یک بخش در دسترس به بخشی دیگر منتقل کرده بودم. در همین بازه، حافظه فعال حدود ۴۵۶ مبیبایت افزایش یافت و در نتیجه، حافظه در دسترس کمتر شد.
برنامههای پسزمینه در تمام این مدت مشغول تخصیص حافظه بودند؛ بنابراین نمیتوانم همه این تغییرات را به دکمه «خالیکردن فهرست آمادهبهکار» نسبت دهم. در سرعت اجرای برنامهها نیز هیچ تفاوتی اندازه نگرفتم. بااینحال، این آزمایش به نتیجهای روشنتر انجامید: بزرگترشدن عدد حافظه آزاد لزوماً به معنای فضای عملی بیشتر نیست و پاککردن حافظه آمادهبهکار نیز RAM تازهای پدید نمیآورد. سیستمعامل دوباره حافظه نهان را از روی درایو میسازد و برای من، همین نکته بهتنهایی پرونده برنامههای تقویتکننده RAM را میبندد.
چه زمانی مصرف ۹۱ درصدی هشدار است؟
پرسش اصلی این بود که آیا عدد ۹۱ درصدی که میدیدم نشانه خطر است یا نه. در رایانه من، این عدد نشان میداد که در آن لحظه سهم نسبتاً کمی از حافظه بهصورت آزاد یا آمادهبهکار فوراً در دسترس بود؛ اما ثابت نمیکرد که سیستم زیر فشار است. مهمتر این است که ببینیم آیا با بار کاری یکسان، حافظه در دسترس پیوسته کاهش مییابد و آیا رایانه کند میشود یا نه. درصد مصرف بهتنهایی اطلاعات چندانی به ما نمیدهد.
اعداد «تعهدشده» و «فشردهشده» در Task Manager را نیز باید در بافت درستشان سنجید. «تعهدشده» مقدار حافظه مجازی تضمینشده برای برنامهها تا سقف تعیینشده است و به میزان RAM در حال استفاده اشاره ندارد. «فشردهشده» نیز حافظهای را نشان میدهد که Windows برای کاهش نیاز به RAM فیزیکی فشرده کرده است. هیچیک از این دو عدد بهتنهایی نشان نمیدهد که حافظه قابلاستفاده رایانهام رو به پایان است.
برای دیدن بخشهای «در حال استفاده»، «تغییریافته»، «آمادهبهکار» و «آزاد» با ابزارهای داخلی Windows، زبانه Memory در Resource Monitor گزینه بسیار خوبی است. قاعده ساده من این است: تا وقتی رایانه بیدرنگ پاسخ میدهد، به حافظه نهان دست نزن؛ اگر رایانه زیر بار کند شد، با زبانه Processes در RAMMap بررسی کن که چه چیزی بیشترین سهم حافظه فعال را گرفته است.
میتوانم یک ماژول DDR4 SODIMM همسان به شکاف دوم لپتاپم اضافه کنم، اما ابتدا باید سازگاری آن را بررسی کنم. در نهایت تصمیم گرفتم دیگر درگیر این پرسش نباشم که چرا نمودار حافظه خالیتر نیست و بهجای آن ببینم آیا Windows برای کارهایی که انجام میدهم حافظه کافی دارد یا نه.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Afam Onyimadu است. مشاهده مقاله اصلی