devhealth,可以帮你定位到创建泄漏的内存的stack
系统自带一个简单的也可以将就用用,我们测视频播放泄露的时候使用的
引用: 引用 2 楼 ruritanian 的回复:
devhealth,可以帮你定位到创建泄漏的内存的stack
divine_rage@126.com 这个工具能发到我邮箱吗?我找不到下载的地方。。。
不好意思我说错了,我本意是说appverify.devhealth是另一个察看内存状况的工具,也能看内存泄露,但是看不到stack的。这个工具是WM上的,CE5上应该也能用,。你可以到这个地址下载:
http://wiki.xda-developers.com/index.php?pagename=Diamond_Testing_Tool
另外,查看内存问题有很多工具,下面这个链接介绍的很详细了:
http://blogs.msdn.com/ce_base/archive/2006/01/11/511883.aspx
引用: 引用 8 楼 ruritanian 的回复:
不好意思我说错了,我本意是说appverify.devhealth是另一个察看内存状况的工具,也能看内存泄露,但是看不到stack的。这个工具是WM上的,CE5上应该也能用,。你可以到这个地址下载:
http://wiki.xda-developers.com/index.php?pagename=Diamond_Testing_Tool
另外,查看内存问题有很多工具,下面这个链接介绍的很详细了:
http://blogs.msdn.com/ce_base/archive/2006/01/11/511883.aspx
有一问题不解,我在CE上运行了一个任务管理器,上面显示内存使用情况是14272KB,但是我把所有进程使用的内存加起来只有7329KB
for(int i = 0; i< 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?
引用: 引用 10 楼 dragon632 的回复:
for(int i = 0; i < 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?
不要采用MFC的 CWnd:GetDC()函数, 使用windows API全局的::GetDC()就不会泄露了.
引用: 引用 11 楼 kieven2008 的回复:
引用 10 楼 dragon632 的回复:
for(int i = 0; i < 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?
? 不要采用MFC的 CWnd:GetDC()函数, 使用windows API全局的::GetDC()就不会泄露了.
这个问题有没有其他办法解决?改全局GetDC()牵涉到的地方太多了。。。
这种泄露应该没有关系的,估计是MFC里面有cache的机制
你要不放心的话试试调用CDC::DeleteTempMap看有没有改善
引用: 引用 12 楼 dragon632 的回复:
引用 11 楼 kieven2008 的回复:
引用 10 楼 dragon632 的回复:
for(int i = 0; i < 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?
? 不要采用MFC的 CWnd:GetDC()函数, 使用windows API全局的::GetDC()就不会泄露了.
这个问题有没有其他办法解决?改全局GetDC()牵涉到的地方太多了。。。
我隐约记得有一对api会泄露4B字节。是有次在微软网站上看到的。。
引用: 引用 13 楼 ruritanian 的回复:
这种泄露应该没有关系的,估计是MFC里面有cache的机制
你要不放心的话试试调用CDC::DeleteTempMap看有没有改善
用CDC::DeleteTempMap就可以了,谢谢啊!