首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android内存转储中EGL和GL是什么?

在Android内存转储中EGL和GL是什么?
EN

Stack Overflow用户
提问于 2015-05-19 22:13:37
回答 2查看 9.8K关注 0票数 18

我目前正在开发一个混合应用程序,它展示了一些我正在尝试调试的特殊内存使用情况。应用程序一启动,它就会立即使用接近250 at的内存,考虑到我们在这一点上所加载的只是登录屏幕,这似乎过度了。我一直在研究一些用于Android的内存分析工具(随SDK附带的Xamarin分析器和android分析器),但它们的堆使用率都相对较低(大约10-15MB,我正在试着降低)。我运行了“亚行外壳虚拟内存信息APPNAME -d”,得到了以下跟踪:

代码语言:javascript
运行
复制
** MEMINFO in pid 24925 [APPNAME] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    19439    19396        0        0    28672    22915     5756
  Dalvik Heap    15441    14992        0        0    37319    36837      482
 Dalvik Other      542      368        0        0                           
        Stack      432      432        0        0                           
       Ashmem    17388    16508      880        0                           
      Gfx dev    40538    34504        0        0                           
    Other dev        4        0        4        0                           
     .so mmap     6211      224     3080        0                           
    .apk mmap    10531        0    10232        0                           
    .ttf mmap      453        0      260        0                           
    .dex mmap     1263        0      980        0                           
    .oat mmap      635        0      152        0                           
    .art mmap      707      516       24        0                           
   Other mmap      452        4       52        0                           
   EGL mtrack    63508    63508        0        0                           
    GL mtrack    79116    79116        0        0                           
      Unknown    21756    21756        0        0                           
        TOTAL   278416   251324    15664        0    65991    59752     6238

我一直试图通过使用在:https://developer.android.com/tools/debugging/debugging-memory.html上提供的文档来理解这意味着什么,但是该页面似乎没有任何关于最大罪魁祸首的信息: Gfx、EGL、GL mtrack和Unknown。是否有一些关于这些类别是什么或者为什么它们会变得如此庞大的文档?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-09 09:13:38

EGL和GL在这里显示了图形层所消耗的内存。我相信你正在安卓棒棒糖设备上运行adb shell dumpsys meminfo命令。实际上,虚拟的meminfo工具/命令已经在棒棒糖中进行了修改,以计算和显示图形内存。

在旧版本(KitKat或更高版本)中,您无法找到EGL和GL信息,尽管图形占用了KitKat或旧版本中的内存。

这是我们可以要求谷歌更新他们的文档来解释新的内存组件。简而言之,您可以说这是Android文档中的错误。他们应该按照adb shell dumpsys meminfo工具/命令的最新实现来更新它。

参考文献:

EGL - (API)

GL - http://en.wikipedia.org/wiki/OpenGL

票数 11
EN

Stack Overflow用户

发布于 2016-05-13 09:12:06

GL磁道是驱动程序报告的GL内存使用情况。它主要是GL纹理大小、GL命令缓冲区、固定全局驱动程序RAM开销等的总和。

EGL跟踪是通用内存的使用。它主要是表面视图/文本视图的总和。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30337044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档