چطور RAM و CPU را در ویندوز تحلیل کنیم؟
روش عملی خواندن مصرف پردازنده و حافظه در ویندوز با Task Manager، Resource Monitor، Get-Process و Performance Monitor.
Founder & product engineer

وقتی فن بلند میشود، بیلد طول میکشد، یا مرورگر بعد از چند ساعت سنگین میشود، حدس «رم کم است» کافی نیست. باید ببینید فشار از CPU است یا Memory یا Disk، کدام فرایند مسئول است، و آیا الگو لحظهای است یا نشتی بلندمدت. ویندوز برای این کار Task Manager، Resource Monitor، Performance Monitor و cmdletهای PowerShell را دارد.
این مقاله ترتیب عملی خواندن منابع را از دید توسعهدهنده میدهد تا قبل از خرید RAM یا نصب بوستر، شواهد داشته باشید.

پاسخ کوتاه
با Ctrl+Shift+Esc به Task Manager بروید، تب Processes را روی CPU و Memory مرتب کنید، در Details مسیر و PID را ببینید، برای عمق فایل/هندل به Resource Monitor (resmon) بروید، و برای نمونهبرداری اسکریپتی از Get-Process و در صورت نیاز Performance Monitor استفاده کنید. درصد CPU را با تعداد هسته تفسیر کنید و Memory را بین In use، Cached و Commit جدا بفهمید.
اول ستون را بفهم، بعد فرایند را متهم کن.
مدل ذهنی: سه منبع گیجکننده
- CPU: زمان پردازش؛ ۱۰۰٪ روی یک هسته با ۸ هسته منطقی میتواند حدود ۱۲٪ کل باشد — به نمای کلی توجه کنید.
- Memory: کار در حال استفاده، کش فایل، و Commit Charge؛ پر بودن ظاهری همیشه یعنی کمبود فیزیکی نیست.
- Disk: گاهی «کندی» در واقع صف دیسک است نه CPU؛ ستون Disk را همزمان ببینید.
WSL2 و Docker اغلب بهصورت Vmmem/VmmemWSL حافظه میگیرند؛ سقف را در .wslconfig بگذارید.
Task Manager بهعنوان نقطهٔ شروع
- Ctrl+Shift+Esc.
- More details اگر نمای ساده است.
- Processes را روی CPU یا Memory مرتب کنید.
- روی فرایند راستکلیک → Go to details برای PID.
- تب Performance برای نمودار کلی CPU/Memory/Disk/GPU.
برای توسعهدهنده، دیدن نام سادهٔ «App» کافی نیست؛ Details و ستون Command line (قابل فعالسازی) نشان میدهد کدام پروژه یا runtime است.
Resource Monitor برای عمق
resmon را از Win+R اجرا کنید. تب CPU نشان میدهد کدام فرایند در حال اجراست و چه هندل/ماژولی دارد. تب Memory نقشهٔ Physical Memory را نشان میدهد. تب Disk مشخص میکند کدام فایل خوانده/نوشته میشود — برای پیدا کردن آنتیویروس روی node_modules یا لاگ در حال رشد عالی است.
PowerShell: نمونهبرداری تکرارپذیر
powershell
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU, WorkingSet64 Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 Name, Id, @{n='WS_MB';e={[math]::Round($_.WorkingSet64/1MB,1)}}
WorkingSet تقریبی از حافظهٔ فیزیکی در حال استفادهٔ فرایند است. برای پایش دورهای میتوانید در حلقه نمونه بگیرید و به CSV بنویسید تا ببینید آیا روند صعودی (نشتی مشکوک) دارید.
powershell
1..12 | ForEach-Object { $p = Get-Process -Name node -ErrorAction SilentlyContinue | Measure-Object WorkingSet64 -Sum [pscustomobject]@{ t = Get-Date; MB = [math]::Round(($p.Sum/1MB),1) } Start-Sleep 5 }
خواندن Memory بدون ترس
| مفهوم | معنا | نکته |
|---|---|---|
| In use | حافظهٔ فعال فرایندها و سیستم | بالا بودن با Cached فرق دارد |
| Available | تقریباً آماده برای تخصیص | خیلی کم = فشار واقعی |
| Cached | کش فایل؛ قابل آزاد شدن | پر بودن بد نیست |
| Commit | تعهد حافظه مجازی | نزدیک حد = خطر |
اگر Available پایین است و یک فرایند Working Set را بیوقفه بالا میبرد، همان را هدف بگیرید. اگر Available مناسب است ولی سیستم کند است، Disk یا CPU تکنخ را بررسی کنید.
CPU: چند هسته و فرایندهای یاغی
بیلدهای موازی، کامپایلر، و index کردن IDE میتوانند CPU را مشروع بالا ببرند. نشانهٔ مشکل: CPU بالا در بیکاری، یا یک فرایند پسزمینهٔ ناشناس پایدار. برای ارتباط با پورت و سرویس، PID را به Get-NetTCPConnection و Get-Service وصل کنید.
Performance Monitor وقتی نمودار ساده کافی نیست
perfmon شمارندههای دقیق مثل Processor Time، Working Set، و Disk Queue Length را در زمان ثبت میکند. برای بازتولید باگ کندی در یک بازهٔ مشخص، Data Collector Set سبک بسازید و بعد از بازتولید نتیجه را بخوانید. برای کار روزمرهٔ لپتاپ، Task Manager و resmon معمولاً کافیاند.
الگوی تحقیق کندی بعد از ناهار
- Performance: CPU اشباع است یا Disk؟
- Processes: سه تای اول چه هستند؟
- اگر Vmmem است: WSL را shutdown یا سقف حافظه را کم کنید.
- اگر antimalware روی پوشهٔ پروژه است: استثنای سیاستشده یا جابهجایی پروژه.
- Event Viewer را برای خطاهای زمان شروع کندی ببینید.
نشتی حافظه در اپ خودتان
اگر فرایند شما Working Set را در طول جلسه بالا میبرد و آزاد نمیکند، اول در خود اپ پروفایل کنید (dotnet-counters، clinic، browser memory و غیره). Task Manager فقط علامت میدهد؛ علت را در allocator و cache بدون حد پیدا میکنید. قبل از متهم کردن ویندوز، بیلد Release/Dev و تعداد watcherها را مقایسه کنید.
اشتباههای رایج
- تفسیر ۱۰۰٪ یک هسته بهعنوان ۱۰۰٪ کل سیستم بدون دیدن نمودار کلی.
- ترس از Cached Memory و بستن اپهای بیگناه.
- نادیده گرفتن Disk در تشخیص کندی.
- کشتن فرایند سیستم بهجای فهم سرویس.
- خرید RAM قبل از دیدن اینکه CPU یا Disk گلوگاه است.
چه وقت عمیقتر بروید
وقتی کندی فقط در سناریوی خاص بازتولید میشود، وقتی مشکوک به نشتی در محصول خودتان هستید، یا وقتی ماشین سرور ویندوزی زیر بار تولید است. برای لپتاپ شخصی با بیلد سنگین گاهبهگاه، اول سقف WSL و Startup را درست کنید.
در کار روزمره روی ویندوز موضوع baselines / follow-up را با Get-Process CSV export, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines / follow-up را با Get-Process CSV export, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines / follow-up را با Get-Process CSV export, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines / follow-up را با Get-Process CSV export, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines / follow-up را با Get-Process CSV export, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
در کار روزمره روی ویندوز موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع baselines را با Get-Process CSV export بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
پایهِ قبل/بعد
در کار روزمره روی ویندوز موضوع pressure types / follow-up را با Performance Monitor, Available Memory, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types / follow-up را با Performance Monitor, Available Memory, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types / follow-up را با Performance Monitor, Available Memory, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types / follow-up را با Performance Monitor, Available Memory, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types / follow-up را با Performance Monitor, Available Memory, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
در کار روزمره روی ویندوز موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع pressure types را با Performance Monitor, Available Memory بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
CPU در برابر Memory
در کار روزمره روی ویندوز موضوع resource triage / follow-up را با Task Manager, .wslconfig, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage / follow-up را با Task Manager, .wslconfig, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage / follow-up را با Task Manager, .wslconfig, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage / follow-up را با Task Manager, .wslconfig, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage / follow-up را با Task Manager, .wslconfig, Microsoft Learn بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
در کار روزمره روی ویندوز موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. موضوع resource triage را با Task Manager, .wslconfig بررسی کنید، نتیجه را یادداشت کنید و بدون پایه سیستم را عوض نکنید. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد. اگر مشکل تکرار شد، زمان، PID و Event ID را ثبت کنید تا دفعه قابل استناد باشد.
IDE و مرورگر و Vmmem
خلاصه
تحلیل RAM و CPU در ویندوز با مشاهدهٔ همزمان نوع منبع، مرتبسازی فرایند، و درک Memory در برابر Disk شروع میشود. Task Manager برای شروع، Resource Monitor برای عمق فایل/هندل، PowerShell برای روند زمانی، و Performance Monitor برای نمونهبرداری جدی. شواهد را قبل از خرید سختافزار یا نصب ابزار مشکوک جمع کنید.
سوالات متداول
تفاوت Memory و Commit چیست؟
Memory فیزیکی در حال استفاده را粗 میگوید؛ Commit تعهد حافظه مجازی شامل صفحهٔ دیسک است. Commit نزدیک حد میتواند سیستم را ناپایدار کند حتی اگر نمودار Memory گمراهکننده باشد.
چرا بعد از بستن اپ حافظه سریع برنمیگردد؟
ویندوز کش و Standby را نگه میدارد تا بعداً سریعتر باشد. Available مهمتر از «خالی به نظر رسیدن» است.
Vmmem چیست؟
فرایند مرتبط با ماشین مجازی سبک WSL2/دیگر VMها. با wsl --shutdown یا سقف .wslconfig کنترل میشود.
آیا Get-Counter لازم است؟
برای اسکریپتهای پایش پیشرفته بله؛ برای تشخیص روزمره اغلب Get-Process کافی است.
منابع و مراجع
- Get-Process — Microsoft Learn: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-process
- Using Performance Monitor — Microsoft Learn: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/perfmon
- Resource Monitor — Microsoft Support/Learn overview via Windows documentation hubs
- WSL memory configuration — Microsoft Learn: https://learn.microsoft.com/en-us/windows/wsl/wsl-config
Author
Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.
Related notes
If you are unsure about architecture or the build path, we can talk about the project.
Describe the problem and the constraints. If there is a fit, we will schedule a conversation.




