Android 即使在空活动中,dagger也会导致高内存使用率吗

Android 即使在空活动中,dagger也会导致高内存使用率吗,android,memory,memory-management,memory-leaks,out-of-memory,Android,Memory,Memory Management,Memory Leaks,Out Of Memory,我一直在努力解决高内存使用率的问题。只有当我在android studio中多次执行时,才会发生这种情况。因此,首先要确定的是,我卸载了应用程序,然后运行android studio。该应用程序将安装,一切都很好。检查内存分析器等了一会儿,但什么也没有得到。一切都很好。内存使用非常好。在LeakCanary中没有泄漏报告,也没有经常调用的垃圾收集。然后在android studio中重复运行一段时间后,因为我目前正在开发该应用程序,我注意到该应用程序将在2分钟后崩溃。我检查了内存分析器,我是对的

我一直在努力解决高内存使用率的问题。只有当我在android studio中多次执行时,才会发生这种情况。因此,首先要确定的是,我卸载了应用程序,然后运行android studio。该应用程序将安装,一切都很好。检查内存分析器等了一会儿,但什么也没有得到。一切都很好。内存使用非常好。在LeakCanary中没有泄漏报告,也没有经常调用的垃圾收集。然后在android studio中重复运行一段时间后,因为我目前正在开发该应用程序,我注意到该应用程序将在2分钟后崩溃。我检查了内存分析器,我是对的,内存使用率在1-2分钟内急剧上升。我不知道这是为什么。我检查了堆转储,没有泄漏报告。即使泄漏金丝雀也报告了0次泄漏。我只是在做一些UI修复,就是这样。为了确保它不会发生在我的主要活动中,我创建了一个只有四个按钮的假活动,但内存使用率仍将在1-2分钟内飙升。这在我开始使用dagger 2时是一个问题。根据一些文章,使用自定义范围可能会很昂贵,所以我不使用任何范围。我的应用程序并不复杂,我没有任何异步任务,我还没有使用任何协程atm。这是我得到的图像


泄漏金丝雀没有显示任何泄漏,所以我很困惑。我也没有关于活动的任何图片。我在应用程序级别实现了dagger组件。我的数据库是领域数据库,比房间快,但我并没有在我的活动atm上使用它。有人和我一样有这个问题吗?我只是想知道你明白了吗?

多亏了马克·基恩的评论。找到了原因。是sentry.io在呼叫okhttp。我删除了它,内存使用变得稳定。

“根据一些文章,使用自定义作用域可能会很昂贵,所以我不使用任何作用域”-听起来很糟糕,这里的“昂贵”意味着对象创建。作用域可以最大限度地减少内存中对象的保留(以及使用作用域的其他原因),一旦超出作用域,子组件将可用于垃圾收集,而作为god组件则不会。您的一个依赖项是使用内存-检查当内存从cpu启动时,哪些线程正在运行。