我已经阅读了有关 poolmon 的知识库文章,但他们没有告诉我如何分析这些数字。我的第一个猜测是寻找“Diff”列中的值非常高的驱动程序。那是对的吗?
就我而言,这将是这些过程:
Tag Type Allocs Frees Diff Bytes Per Alloc
Ntfr Nonp 2690737 2528557 162180 10379976 64
Ntfn Nonp 1397933 1304230 93703 3750928 40
NtFs Nonp 2385330 2291634 93696 3749056 40
File Nonp 13789939 13704656 85283 13203912 154
所以这意味着 Ntfs 驱动程序存在内存泄漏,我对此表示怀疑 :) 那么我应该寻找什么?
“Diff”显示分配调用次数与免费调用次数之间的差异。“字节”向您显示当前分配的字节数。
您需要采集一系列样本才能找到泄漏点。大量分配的字节和/或分配与免费调用数量的巨大差异不一定是内存泄漏的迹象。随着时间的推移,分配的字节数稳步增加是内存泄漏的迹象。