2017-10-09 162 views
2

当我的Android Studio配置文件的应用程序的内存,我可以看到不同种类的内存消耗,我怎么能看到的本地和图形内存分配Android Studio中3.0

enter image description here

但是当我倾倒Java堆(中间的按钮),我得到的堆只有分配,

enter image description here

这是从按钮的名称预期。但是我仍然可以看到已分配的字符数组和字符串,但正如我们在最近版本中所知,来自String的char数组被移动到本地堆,并且String类只能通过本机方法访问它们,所以事实证明这个堆转储显示也是本机堆。我对吗?怎么样图形堆?

+0

@Zoe为什么你删除了android-studio标记?其实我期望AS团队的人给出解释 – LackOfKnowledge

+0

这个问题实际上是一个工具,它是Android Studio的一部分的具体情况。请尽量不要做有害或微不足道的编辑@zoe –

回答

1

虽然它不是任何方式的权威来源,但我和其他人试图解释java内存使用here。据我所知(有人使用ART或Davlik可以给你一个更明确的答案),整个应用程序只有一个堆可用,没有特定的图形堆。

Android Studio可能向您展示的是图形操作占用了多少堆。与Stack(绿色)内存段向您展示当前调用堆栈消耗的内容类似。你可以认为这是如何体现在你的代码通过突出段:

enter image description here

当您使用此视图,您应该还记得,从下拉列表中选择您的应用程序堆:

enter image description here

原生& Java细分显示了通过SDK/Java框架直接分配了多少内存,以及通过底层结构本地分配了多少内存。 (他们不要你你的应用程序中显示不同的存储区域,它看起来令人困惑 - 在看到结尾的链接)

enter image description here

的究竟是什么探查器显示你是在Developer Documentation最好的概述这也概括了系统映像和合子堆对你的影响。

1

是否有人熟悉'图形'的内存?为什么它在一个简单的应用程序中消耗如此多的内存。

我创建了一个简单的应用程序,并且HomeActivity中只有一个RecyclerView,但'图形'内存大约需要60MB!

enter image description here

这里是HomeActivity的屏幕截图。

enter image description here

相关问题