gpt4 book ai didi

android - 内存不断增加而没有从leakcanary收到内存泄漏通知

转载 作者:行者123 更新时间:2023-12-05 00:19:14 29 4
gpt4 key购买 nike

我是 android Profiler 的新手,但仍然是内存管理的菜鸟。起初,我收到了来自 LeakCanary 的通知,因此我修复了它们并成功删除了泄漏,因此 LeakCanary 停止向我发送通知。但是当我使用 android Profiler 时,我只是注意到当我打开某个 Activity 然后使用 finish(); 销毁它时,内存使用量正在一点一点地上升。方法。以下是我打开和关闭 OrdersActivity 时 Profiler 的示例屏幕截图.
这是打开和关闭 OrdersActivity 之前使用的总内存的 SS
enter image description here
这是打开和关闭 OrdersActivity 后使用的总内存的 SS
enter image description here
这里也是 LeakCanary 的堆栈跟踪
enter image description here
我想知道这种内存上升的现象是否正常?如果没有,有没有办法阻止这种情况?如果您需要它们来帮助我,我愿意展示我的代码。我只是没有包括它,因为它太长了。

最佳答案

LeakCanary 将检测内存泄漏,即当 Activity 关闭时仍保留在内存中的对象。
如果您想了解为什么内存使用量随着 Activity 的运行而增加,您可以 track allocations using the profile.
编辑:此外,很难阅读屏幕截图,但在我看来,当您开始 Activity 时正在增加 代码 (代码:您的应用程序用于代码和资源的内存,例如 dex 字节码、优化或编译的 dex 代码、.so 库和字体。)。在这种情况下,这是完全正常的:启动一个 Activity 需要加载额外的代码( Activity 本身,可能很小,如果尚未加载,则需要所有必需的 AppCompat)。测试内存泄漏的常用策略是启动和关闭 Activity 一百次,并验证在第 2 次和第 100 次之间没有内存增加。

关于android - 内存不断增加而没有从leakcanary收到内存泄漏通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63556433/

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