【问题标题】:How can I see allocations of native and graphics memory in Android Studio 3.0如何在 Android Studio 3.0 中查看本机和图形内存的分配
【发布时间】:2018-03-20 17:12:24
【问题描述】:

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

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

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

【问题讨论】:

  • @Zoe 为什么你删除了 android-studio 标签?其实我希望AS团队的人给出解释
  • 这个问题实际上是针对作为 Android Studio 一部分的工具的。请尽量不要进行有害或琐碎的编辑@zoe

标签: android android-studio memory profiling heap-memory


【解决方案1】:

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

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

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

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

Developer Documentation 对分析器向您显示的确切内容进行了最佳概述,其中还概述了系统映像和合子堆对您的意义。

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    相关资源
    最近更新 更多