【问题标题】:GC and java heap analysis in Android StudioAndroid Studio 中的 GC 和 java 堆分析
【发布时间】:2017-09-10 16:11:46
【问题描述】:

我正在使用 Android Studio 来了解有关内存泄漏的更多信息。

我注意到,在旋转屏幕几次之后,我看到了该活动的多个实例(在单击“Initiate GC”和“Dump Java Heap”之后)。

但是当我在“Initiate GC”上单击 2 次,然后在“Dump Java Heap”上单击时,我看到我的活动及其内部类只有 1 个实例。

为什么我必须点击两次“Initiate GC”来清除活动实例?我是否泄漏了内存?

编辑:我还注意到在创建具有空白活动的新项目时会发生这种情况。所以我可能没有泄漏任何内存,但我仍然想知道为什么实例没有在第一次 GC 时被销毁

【问题讨论】:

    标签: android memory garbage-collection heap-memory hprof


    【解决方案1】:

    “Initiate GC”按钮是 GC 运行的信号。 Java GC运行时,不能保证所有可以清除的内存引用,都会在本次GC运行时被清除。

    这只是 GC 运行的触发器。 当 GC 自己运行时具有相同的行为。

    所以你必须多次点击“Initiate GC”,直到你确认你害怕泄漏的对象已经被 GC 清除了。

    那里有很多信息,例如这个线程 How to force garbage collection in Java?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      相关资源
      最近更新 更多