G
George2
Hello everyone,
Sorry that this question is related to another question I posted some
time before because I have some new findings and self-analysis.
My question is why sometimes from perfmon on Windows, working set
larger than virtual memory? I think virtual memory is the total size
of memory (committed, reserved, shared, private) and working set is
just the RAM touched by current process currently. Virtual memory
should always larger than working set...
But, I write a simple program to show working set is larger than
virtual memory from perfmon. The program is simple, just open a couple
of memory map files and read from beginning to the end.
The only reason I could think of why working set sometimes is larger
than virtual memory is, the OS memory management component may not
reclaim some RAM consumed by current process even if the current
process does not use the RAM. And keeping such RAM could improve
performance if the process will use it in the future. But this point
makes me confused because I think if it is true, such RAM does not
have related virtual memory address, how could the current process
utilize or even address (re-use to avoid hard page fault) it in the
future?
thanks in advance,
George
Sorry that this question is related to another question I posted some
time before because I have some new findings and self-analysis.
My question is why sometimes from perfmon on Windows, working set
larger than virtual memory? I think virtual memory is the total size
of memory (committed, reserved, shared, private) and working set is
just the RAM touched by current process currently. Virtual memory
should always larger than working set...
But, I write a simple program to show working set is larger than
virtual memory from perfmon. The program is simple, just open a couple
of memory map files and read from beginning to the end.
The only reason I could think of why working set sometimes is larger
than virtual memory is, the OS memory management component may not
reclaim some RAM consumed by current process even if the current
process does not use the RAM. And keeping such RAM could improve
performance if the process will use it in the future. But this point
makes me confused because I think if it is true, such RAM does not
have related virtual memory address, how could the current process
utilize or even address (re-use to avoid hard page fault) it in the
future?
thanks in advance,
George