如何在Android Studio 3.0中查看本地内存和图形内存分配

4
当我在Android Studio中分析应用程序的内存时,我可以看到不同类别内存的消耗。

enter image description here

但是当我转储Java堆(中间按钮)时,我只会得到堆的分配情况。

enter image description here

从按钮的名称可以预期到这一点。但是到目前为止,我仍然可以看到分配的字符数组和字符串,但是我们知道在最近的版本中,来自字符串的字符数组被移动到本地堆栈,并且String类只能通过本机方法访问它们,因此,这个堆转储也显示了本地堆栈。我是对的吗?那图形堆又怎么样呢?


@Zoe 为什么你移除了 Android Studio 标签?实际上我期望 AS 团队的某个人能够给出解释。 - LackOfKnowledge
这个问题实际上非常特定于Android Studio的一种工具。请尽量不要进行有害或琐碎的编辑@zoe - Nick Cardoso
1个回答

4

虽然这不是权威来源,但我和其他人尝试在这里解释Java内存使用情况。据我所知(与ART或Davlik合作的人可以给你更明确的答案),您的整个应用程序只有一个堆可用,没有特定的图形堆。

Android Studio可能向您显示的是图形操作消耗了多少堆。类似于栈(绿色)内存段向您显示当前调用堆栈消耗了多少内存。您可以通过突出显示片段来查看此在代码中的反映:

enter image description here

使用此视图时,您应记得从下拉菜单中选择您的应用程序堆。

enter image description here

本地和Java部分显示您通过SDK / Java框架直接分配了多少内存,以及通过底层结构本地分配了多少内存。 (它们不会向您显示应用程序中的不同内存区域,这可能会令人困惑-请参见末尾的链接)

enter image description here

关于分析器所显示的内容,最好的概述在开发者文档中,该文档还向您概述了系统映像和zygote堆。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接