【问题标题】:Android studio dumping hprof file into the project folderAndroid Studio 将 hprof 文件转储到项目文件夹中
【发布时间】:2017-06-29 11:54:00
【问题描述】:

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

【问题讨论】:

    标签: android android-studio gradle gradlew


    【解决方案1】:

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

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

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

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

    当然也可能是您的构建脚本中存在内存泄漏,因此内存在运行时累积。如果您使用 gradlew --stop 杀死 gradle 守护程序,然后这种行为仅在几次构建后才出现,那么您可能有内存泄漏,您应该调查并修复。如果它在停止守护程序后立即失败,您的构建可能只需要更多内存。如果问题是内存泄漏,则增加最大内存只会暂时有所帮助,并且您将获得相同的行为,只是在比以前更多的构建之后。

    【讨论】:

    • 是的,一段时间后它会给出 GC Out of memory 错误。我记得增加了堆大小,我会检查一下并在此处发布。
    猜你喜欢
    • 2018-03-15
    • 1970-01-01
    • 2015-09-23
    • 2012-02-24
    • 1970-01-01
    • 2022-10-24
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多