以某种方式创建大量hprof文件,阻止我推送

时间:2015-10-28 18:31:57

标签: android memory heap

我目前无法将我对项目所做的更改推送到GitHub,因为它一直在寻找这些名为" java_pid(随机数).hprof"的大量(~300MB)文件。我不知道他们来自哪里。谷歌搜索没有任何有用的东西 - 其他人都在询问如何使用它们,关于Eclipse,我使用Android Studio,我不在乎什么&#39在他们中间,我只是想让他们走了。

请帮忙!

7 个答案:

答案 0 :(得分:6)

我最近偶然发现了这个问题,发现[bfg][1]有帮助。 BFG可以在MacOS中使用brew安装。然后,我运行bfg --strip-blobs-bigger-than 100M /git_folder/以删除git历史记录上大于100MB的任何文件,然后运行git reflog expire --expire=now --all && git gc --prune=now --aggressive。最后,我推动了一切,一切正常。

答案 1 :(得分:1)

当您在Android监视器中包含的内存监视器中监视内存使用情况时,您可以同时将Java堆的快照转储到特定于Android的堆/ CPU概要文件(HPROF)文件。 HPROF Viewer显示类,每个类的实例和参考树,以帮助您跟踪内存使用情况并查找内存泄漏。 HPROF是J2SE最初支持的二进制堆转储格式。

您可以将其删除。

https://developer.android.com/studio/profile/am-hprof.html

答案 2 :(得分:0)

也许jdk不正确。

android studio-文件-项目结构-sdk位置-jdk位置-使用嵌入式jdk

可以解决您的问题

答案 3 :(得分:0)

检查您的日志,找出您可能意外提交了该文件的位置,并使用

从文件中获取哈希值
git log --verbose

从日志历史记录使用中复制前7个字符,

git checkout 7_character_string android / java_pid0000.hprof

java_pid0000.hprof->这应该与您的文件名匹配,该文件名将在推送失败后显示。

答案 4 :(得分:0)

这让我绊倒了,删除和gitignore的组合并没有摆脱它。最终使用git log --name-only组合找到提交,然后将软回退14个提交git reset --soft HEAD~14恢复为提交,然后再将其删除,将其添加到gitignore中,然后提交并恢复工作。 / p>

答案 5 :(得分:0)

我遇到了同样的问题,我无法将更改推送到 git,当我检查 git status 时,它一直给我未跟踪的文件,当我尝试执行 git stash 时,它没有用,它们继续出现,所以我去了 Visual Studio,找到了未跟踪的 *.hprof 文件并从那里删除了它们,现在我可以将更改推送到 git。

答案 6 :(得分:0)

这只是堆转储。我很幸运能早点赶上。删除大文件并执行 git commit --amend 以摆脱它。