我试图通过使用日食DDMS视图中的HPROF文件来检查内存泄漏。
我尝试使用MAT读取保存到磁盘的.hprof,但收到错误:
Error opening heap dump 'com.myapp.myapp.hprof'. Check the error log for further details.
Error opening heap dump 'com.myapp.myapp.hprof'. Check the error log for further details.
Unknown HPROF Version (JAVA PROFILE 1.0.3) (java.io.IOException)
Unknown HPROF Version (JAVA PROFILE 1.0.3)
所以我在StackOverflow上的另一篇文章中跟随了一个解决方案,它告诉我改变首选项
Android> DDMS> HPROF行动:在Eclipse中查看
但是这只是将文件显示为不可读的文本文件:
我认为它应该比那更容易理解所以我做错了什么?
修改
我在其他帖子中读到了关于使用hprov-conv.exe的东西,我试图打开它,它闪屏然后关闭(即使以管理员身份打开)所以我不知道如何使用它。
答案 0 :(得分:11)
“在Eclipse中打开”选项仅在您使用MAT Eclipse插件时才有效。 MAT Downloads page显示“更新站点”链接,您可以通过帮助>将其添加到Eclipse中。安装新软件>添加。
答案 1 :(得分:7)
您可以使用android sdk中提供的 HPROF Converter 工具。
hprof-conv 工具将Android SDK工具生成的HPROF文件转换为标准格式,以便您可以在自己选择的性能分析工具中查看该文件。
hprof-conv <infile> <outfile>
转换文件后,没有任何问题。
答案 2 :(得分:0)
你仍然可以使用一个单独的MAT(我认为是正确的 要做的事情,因为开发这个系统的人就是这样做的 并且他似乎知道分离问题是更明智的方式。
你可以这样做。您必须将该文件复制到非临时文件 目录(桌面或类似的东西)并像你一样打开 将转换成文件。
您保存此文件,而不是在MAT Eclipse中打开它。
似乎DDMS保存到磁盘会保存常规的.hprof文件 另一个版本保存到文件保存编码的adt版本 至少在我的机器上。
有关此方法的详细信息,请观看此视频 http://www.youtube.com/watch?v=_CruQY55HOk