Virtual memory from a computer size perspective is
[a way to make the program] think it has a large range of contiguous addresses; but in reality the parts it is currently using are scattered around RAM, and the inactive parts are saved in a disk file. (Wikipedia)
I would interpret VM Size in the Windows Task manager as either the total addressable virtual memory space or the amount of memory the process is currently using in the virtual memory space.
But in the Task Manager the WM Size is in many cases less than Mem Usage, which should be amount of RAM the process is using. Therefor I guess that WM Size means something else?
It's the total of all private (not shared) bytes allocated by this process, whether currently in physical memory or not.
See also An introductory guide to Windows Memory Management or Commit Charge Wikipedia article
For a developer watching process state like this I would recommend to install SysInternals Process Explorer and to use it instead of the default Task Manager. This value is called "Private Bytes" in it.
What's the correct answer about VM Size?
In Coding Horror
How much of the processes' less frequently used memory has been paged to disk.
In Comment of Coding Horror
You're wrong on VM Size. It's the total of all private (not shared) bytes allocated by this process, whether currently in physical memory or not. It's a better value for tracking whether you have a memory leak than 'Mem Usage'. The same value is available in Performance Monitor as 'Process: Private Bytes'.
In MSDN
Virtual Memory Size : The amount of virtual memory, or address space, committed to a process.
I am confusing what is corrent.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With