4

我试图通过使用 Eclipse 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 中查看

但这只是将文件显示为不可读的文本文件: eclipse中的hprof文件

我假设它应该比这更容易理解所以我做错了什么?

编辑

我在其他帖子中读到了关于使用名为 hprov-conv.exe 的东西,我试图打开它,它闪烁了一个屏幕然后关闭(即使以管理员身份打开),所以我不知道如何使用它。

4

3 回答 3

11

“在 Eclipse 中打开”选项仅在您使用 MAT Eclipse 插件时才有效。MAT 下载页面显示“更新站点”链接,您可以通过“帮助”>“安装新软件”>“添加”将其添加到 Eclipse。

于 2013-09-07T16:05:05.937 回答
7

您可以使用android sdk 中提供的HPROF Converter工具。

hprof -conv工具将 Android SDK 工具生成的 HPROF 文件转换为标准格式,以便您可以在您选择的分析工具中查看该文件。

hprof-conv <infile> <outfile>

更多HPROF 转换器

转换文件后打开没有任何问题。

于 2013-10-29T11:07:48.547 回答
0
  • 您仍然可以使用分离的 MAT(我认为这是正确的做法,因为开发此系统的人就是这样做的,而且他似乎知道这是分离关注点的更聪明的方法)

  • 你可以这样做。您必须将该文件复制到非临时
    目录(桌面或类似的东西)并像
    转换文件一样打开它。

  • 您保存此文件,然后在 MAT Eclipse 中打开它。

  • 似乎 DDMS 保存到磁盘保存了常规的 .hprof 文件,而另一个版本保存到文件至少在我的机器上保存了编码的 adt 版本。

    有关此方法的更多信息,请观看此视频 http://www.youtube.com/watch?v=_CruQY55HOk

于 2014-03-04T17:38:03.747 回答