Android studio将hprof文件转储到项目文件夹

时间:2017-06-29 11:54:00

标签: android android-studio gradle gradlew

将gradle版本更新为3.3后(我不确定这是否会影响任何内容)但有时候,我的构建大约需要30分钟。我看到一个名为" java_pid1160.hprof"的文件。在构建完成或取消时,在我的项目的主程序包中存档。该文件大约2-5~GB。我的CPU在发生这种情况时疯狂地工作,我看到风扇活动增加了。我知道hprof文件是java内存转储,但由于Android Studio具有内存监视器并且还将内存转储到hprof文件,因此很难找到任何有用的内容。其他人有这个问题吗?

1 个答案:

答案 0 :(得分:0)

我说你的构建内存不足而且Gradle默认设置-XX:+HeapDumpOnOutOfMemoryError,所以你会在内存不足的情况下获得堆转储。我不知道你是否也没有显示OOM。

您应该尝试增加您为构建授予的最大内存。添加e。克。

org.gradle.jvmargs = -Xmx2g -XX:+HeapDumpOnOutOfMemoryError

到您的项目gradle.properties文件(如果不存在则创建它,它必须位于根项目目录中)以增加最大内存。

当然也可能是您的构建脚本中存在内存泄漏,因此内存会累积运行。如果您使用gradlew --stop终止gradle守护程序,然后只有在几次构建之后才会返回此行为,那么您可能会遇到内存泄漏,应该调查并修复。如果在停止守护进程后立即失败,则构建可能只需要更多内存。如果问题是内存泄漏,增加最大内存只会暂时有用,你会得到相同的行为,只是在比以前更多的构建之后。