Why is perfmon not giving usable memory and what are the alternatives?
I am trying to get reliable information about when my C # (Windows XP) application will run out of memory. I did some research and tests on my machine and picked out the most reliable perfmon counters :
Memory.Pages Output/sec Memory.Available Bytes
I use the thresholds and the AND operator and it works well enough, but on a client machine (also Windows XP) both counters are useless. Available memory does not drop below 1 GB and page output is persistent. After reading some magazines, I still don't see a useful counter.
Counters, like memory, give the correct value, but the program runs out of memory (with a paging performance kill) after crossing 50% -60% of the available 5GB.
Any alternatives? I would not want to be forced to try to allocate memory and catch OutOfMemory exceptions during computation.
source to share
See When will Windows out of memory end?
In short, you want to check for private bytes, virtual bytes and / or working set for your process.
source to share