使用perfmon来找内存泄露

这里再讲一个故事,也是发生在最近,大家可能不相信,perfmon怎么能找到内存泄露呢?

一般的,看内存泄露是通过taskmanager,一般的看内存占用等价于private bytes,见 http://stackoverflow.com/questions/1984186/what-is-private-bytes-virtual-bytes-working-set 看到private bytes很有规律的变化,为了看出规律要祭出另一件法器perfmon,看见每隔一个周期会很有规律的增加200k;开始以为一个周期是1分钟,立刻想到底层文件的管理上去了,他是每分钟清除不常用到的文件;后来发现perfmon的每个周期不是1分钟是100秒(我想当然了),观察了几次,想不出什么管理是每100秒做一次;用前面的umdh的方法看内存几乎没有变化,等几十分钟perfmon都增加了十几M了,累加umdh的log仍然没啥变化。

于是凝神看这perfmon的变化,100秒,太有规律了,不得不想到是场景的音乐在循环播放;在音乐播放那里printf一下,正好和100秒的增长一致。因为音乐用的是第三方库,导致umdh找不到分配吗?留待下篇再分析下。

posted on 2011-09-19 23:40  风行水上  阅读(1037)  评论(0编辑  收藏  举报