在Android Studio的AndroID Monitor部分,我已经转储了Java Heap,并且正在查看生成的hprof.
我在FinalizerReference下看到很多分类:
这是什么?我怎样才能更好地了解导致它的原因以及如何保持原状?查看“实例”面板对我没什么帮助……没有多大意义.
我试过看了this,但现在这一切都在我脑海里.
此外,目前内存监视器正在报告(在实时图表部分中)一个10.58 MB的分配内存.但是在我的设备上,在“应用程序管理器”中>正在运行进程,我的应用程序显示内存使用量为44MB.为什么会出现差异?如果它是〜33MB我想尝试减少,我在AndroID Studio中显然没有看到它,所以没有真正希望识别它是什么?
解决方法 关于FinalizerReference内存使用情况可能没什么可做的.有关更多详细信息,请参阅此 question – 基本上一些对象实现了finalize(),并且这些对象的处理方式稍有不同,这样它们最终可能会更长时间地粘贴.我没有仔细研究它,但我怀疑一些androID sdk对象会这样做,除了可能调整你的对象缓存/回收以减少它之外你几乎无能为力.我不确定这对FinalizerReference是否有帮助,但我想跟踪内存泄漏的一件事就是找到可疑对象与GC根目录的连接.
如果你正在使用Eclipse hprof分析器(独立于实际的Eclipse IDE;使用androID studio生成的hprofs),这是访问它的一种方法:
>概述
>直方图
>右键单击“列出对象”
>右键单击怀疑泄漏的对象,“GC Roots的路径”
现在,您应该看到从gc根目录返回到对象的嵌套引用列表.
我不确定是什么原因造成的差异 – 这是similar question.显然,内存监视器工具可能只报告由Java代码生成的堆分配,而设备则报告整个进程的内存使用情况.
总结以上是内存溢出为你收集整理的使用Android Studio进行内存使用情况分析全部内容,希望文章能够帮你解决使用Android Studio进行内存使用情况分析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)