gpt4 book ai didi

java - 如何在 Java/Android 中查找内存泄漏

转载 作者:行者123 更新时间:2023-12-04 23:44:58 26 4
gpt4 key购买 nike

我在我们的一个应用程序中遇到了内存泄漏问题,并且不确定下一步该往哪里看。我知道有人问过类似的问题,但没有人提供任何有用的答案。

当我们在 android studio 中使用分析器时,它显示“ native ”内存增长得非常快,并且在使用该应用程序大约 10-15 分钟后,它会因内存泄漏而崩溃。

我们的应用程序完全是用 java 和 kotlin 编写的,我已经查看了任何静态对象,或保存在垃圾收集器可能不会收集的伴生对象中的对象,但除了一些静态字符串,如 TAG日志记录。

我们尝试使用泄漏金丝雀,但它似乎找不到任何内存泄漏,并不断告诉我们我们的应用程序很好。我什至故意通过静态保持 android Activity 上下文来添加泄漏,以确保泄漏金丝雀正常工作,并且确实如此。

还有什么我应该注意的可能会导致我的 Java 代码中出现内存泄漏的事情吗?我可能持有的任何特定对象会导致这种情况?

最佳答案

在 Android Studio 中,您可以通过按下 Dump Java heap 按钮来生成堆转储:
Dump Java Heap Button

在这里你可以看到哪个类使用了多少内存。例如,您可能会发现垃圾收集器应该收集但没有收集的类。

**更新:
正如您所说,问题出在 native 内存分配上,但我会保留这个答案,因为它可能会帮助其他人。

关于java - 如何在 Java/Android 中查找内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59789505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com