Android Studio堆转储(.hprof)查看器显示不正确的计数?

时间:2016-08-20 20:56:45

标签: java android garbage-collection hprof

我为这个实验开了一个全新的示例项目。该应用有一项活动。

此时我运行应用程序并转储java堆。结果如下所示:

formula

太棒了!一切看起来都很正确。 “总计数”和“堆数”均为1.正是我的预期。

让我们旋转我的设备3次。在这一点上,我仍然希望只看到1个MainActivity,但我知道已经创建了4个。我们来看看。

enter image description here

嗯......这很奇怪。它显示4.怎么可能?也许活动仍在那里。没有引用......但他们还没有GC。让我们强制GC并进行另一次堆转储。

enter image description here

奇怪。它仍然是4.这是我失去的地方。听起来总计数或堆计数应该是1.它只是保留MainActivity的每个参考吗?这是泄漏吗?观众错了吗?

总计数(根据文档)是“未完成的实例总数。”

也许堆数? “所选堆中的实例数。”那听起来更像是我想要的东西。我想要gc根的实例数(实例)。

有谁知道为什么会这样?

0 个答案:

没有答案