Now suppose a program running in a process uses VirtualAlloc (a Win32 API) to "commit" 2 MiB of virtual memory. (There is no substantial difference in any of the following for 64-bit systems, except that the addresses and sizes can be larger - much larger.) Let's assume we're talking about 32-bit systems, so the maximum virtual address space available to each process is normally 2 GiB. (But this is not all of the use of RAM, because there are other things that use RAM). This is actually pretty straightforward once you understand that commit charge represents only potential - yet "guaranteed available if you want it" - use of virtual memory, while the "private working set" - which is essentially the RAM used by "committed" memory - is actual use, as is pagefile space. That is, I'd like to avoid suggestions like "Do X/Y/Z to your page file".) The ultimate question I'd like to answer, is: Can I forego artificially inflating my page file to levels my starved-for-space SSD is ill-equipped to handle just so I can actually effectively utilize my physical memory? (Or even if it wasn't as full. This is on windows 10, as reported by Process Explorer. When commit charge fills up and windows starts asking me to close things, most of the time physical memory is at around 60%.Sometimes this reaches extreme levels where Current commit is more than double physical memory usage!.What's up with that? Shouldn't that be impossible? Current commit is regularly higher than Physical usage + Pagefile size.This question is prompted by the following regularly observed phenomena I'd like to find an explanation for: How does memory/commit charge work in Windows 10?
0 Comments
Leave a Reply. |