【发布时间】:2014-08-24 05:08:58
【问题描述】:
最近从eclipse切换到android studio。如何在 android studio 中检查应用程序堆和内存分配?在 Eclipse 中我们有 MAT 工作室里有什么东西可以检查堆转储、hprof 文件吗?
【问题讨论】:
标签: android android-studio profiling heap-memory
最近从eclipse切换到android studio。如何在 android studio 中检查应用程序堆和内存分配?在 Eclipse 中我们有 MAT 工作室里有什么东西可以检查堆转储、hprof 文件吗?
【问题讨论】:
标签: android android-studio profiling heap-memory
我将通过步骤简单地解释它:
首先,您已安装 MAT (download) 或使用:
brew cask install memoryanalyzer
在 Android Studio 中打开 Android Device Monitor 或 DDMS。
选择您的进程“com.example.etc..”
单击进程列表上方的更新堆。
在右侧面板中,选择“堆”选项卡。
单击导致 GC。
单击进程列表上方的转储 HPROF 文件。
当我们下载 HPROF 文件时,我们必须打开终端并运行此命令来生成文件以使用 MAT 打开它。
打开终端并运行此命令
./hprof-conv path/file.hprof exitPath/heap-converted.hprof
命令“hprof-conv”在sdk的platform-tools文件夹中。
【讨论】:
还有另一种查看分配的方法:
【讨论】:
我同意上述答案,但以下步骤除外
单击进程列表上方的更新堆。
在右侧面板中,选择“堆”选项卡。
单击导致 GC。
它们不是必需的。只需在 DDMS 中选择您的应用程序/进程,然后单击转储 HPROF 配置文件选项。之后,完全按照上述步骤操作。
【讨论】:
也可以通过以下方式获得更多选择,
【讨论】:
先安装MAT,要在Android Studio中使用,需要选择Stand-alone Eclipse RCP Applications安装,可以作为独立工具使用
在 Android Studio 中,运行您的应用程序
在底部面板中,选择6:Android,然后选择Memory Monitor
点击Dump Java Heap
切换到 Captures 选项卡(在左侧面板中),您可以在 Heap Snapshot 文件夹中找到 .hprof 文件
为了在 MAT 中打开 .hprof 文件,您需要转换格式:
左键单击.hprof 文件,然后选择Export to standard .hprof
打开MAT,然后打开你已经转换格式的.hprof文件
【讨论】:
请注意,在最新的 Android Studio (1.3+) 中,堆 (Android hprof) 捕获已移至 Android 选项卡下的 Memory Monitor 子选项卡(如 cVoronin 答案中的第一张图片)。
捕获完成后,它会自动保存到您项目下的“captures”目录中(如果您愿意,可以在事后重命名文件)。 hprof 文件将在 1.3+ 的新 hprof 查看器中自动打开。
当然,您始终可以选择将其转换为标准 hprof 格式并在 MAT 中查看。只需右键单击 Captures 浏览器中的文件(在项目浏览器下),然后在此处选择转换。和往常一样,如果不使用新的查看器,您会丢失一些额外的 Android 特定信息,因为标准 hprof 不支持这些信息。
【讨论】:
我从 Eclipse 切换到 Android Studio,但我仍然在 Eclipse 中使用 MAT,并带有 DDMS 插件。这要容易得多。
【讨论】:
我知道这是一个很老的问题,但 Android Studio 3 现在有一个内置的分析器。
【讨论】:
您可以在新的 android studio 中使用 android profiler。
【讨论】: