用什么工具可以检测WinCE程序的内存泄漏?

nwuwmz   2009-11-15 11:47 楼主
用什么工具可以检测WinCE程序的内存泄漏?

回复评论 (17)

远程工具:性能监测
点赞  2009-11-15 12:23
devhealth,可以帮你定位到创建泄漏的内存的stack
点赞  2009-11-15 12:35
引用: 引用 2 楼 ruritanian 的回复:
devhealth,可以帮你定位到创建泄漏的内存的stack


应用程序内存泄露的话也可以吗?
点赞  2009-11-15 12:47
可以啊,都可以的
点赞  2009-11-15 12:50
系统自带一个简单的也可以将就用用,我们测视频播放泄露的时候使用的
点赞  2009-11-15 16:33
引用: 引用 2 楼 ruritanian 的回复:
devhealth,可以帮你定位到创建泄漏的内存的stack


divine_rage@126.com 这个工具能发到我邮箱吗?我找不到下载的地方。。。
点赞  2009-11-16 10:24
不好意思我说错了,我本意是说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
点赞  2009-11-16 11:05
引用: 引用 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
点赞  2009-11-16 11:54
for(int i = 0; i< 10000;i++)
        {
                CDC *dc = GetDC();
                ReleaseDC(dc);
        }
运行完后总共泄漏433K内存?
点赞  2009-11-16 15:52
引用: 引用 10 楼 dragon632 的回复:
for(int i = 0; i < 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?



   不要采用MFC的 CWnd:GetDC()函数, 使用windows API全局的::GetDC()就不会泄露了.
点赞  2009-11-16 17:28
引用: 引用 11 楼 kieven2008 的回复:
引用 10 楼 dragon632 的回复:
for(int i = 0; i < 10000;i++)
{
CDC *dc = GetDC();
ReleaseDC(dc);
}
运行完后总共泄漏433K内存?



? 不要采用MFC的 CWnd:GetDC()函数, 使用windows API全局的::GetDC()就不会泄露了.


这个问题有没有其他办法解决?改全局GetDC()牵涉到的地方太多了。。。
点赞  2009-11-17 12:41
这种泄露应该没有关系的,估计是MFC里面有cache的机制
你要不放心的话试试调用CDC::DeleteTempMap看有没有改善
点赞  2009-11-17 13:03
> 学习。
点赞  2009-11-17 13:08
关注中……
点赞  2009-11-17 22:30
调用API查看内存使用情况就得啦
点赞  2009-11-18 01:11
引用: 引用 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字节。是有次在微软网站上看到的。。
点赞  2009-11-18 10:13
引用: 引用 13 楼 ruritanian 的回复:
这种泄露应该没有关系的,估计是MFC里面有cache的机制
你要不放心的话试试调用CDC::DeleteTempMap看有没有改善


用CDC::DeleteTempMap就可以了,谢谢啊!
点赞  2009-11-18 13:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复