为什么perfmon无法提供可用内存以及有哪些替代方案?

时间:2009-01-04 17:02:13

标签: windows memory perfmon

我正在尝试获取有关何时我的C#应用​​程序(Windows XP)内存不足的可靠信息。我在我的机器上进行了一些研究和测试,并选择了最可靠的 perfmon 计数器:

Memory.Pages Output/sec
Memory.Available Bytes

我使用阈值和AND运算符,它运行良好,但在客户端计算机(也是Windows XP)上,两个计数器都没用。可用内存不低于1GB,页面输出恒定为零。看完一些日志后,我仍然没有看到任何有用的计数器。
像已提交的内存这样的计数器给出了正确的值,但是在超过5GB可用空间的50%-60%之后,程序内存耗尽(分页会导致性能下降)。

任何替代方案?我不想在计算过程中被迫尝试分配内存并捕获OutOfMemory异常。

1 个答案:

答案 0 :(得分:0)

请参阅When does a Windows process run out of memory?

简而言之,您希望为您的流程检查私有字节,虚拟字节和/或工作集。