Jef*_*ott 16 performance android xamarin
我目前正在研究一种混合应用程序,它正在展示我正在尝试调试的一些特殊内存使用情况.一旦应用程序启动,它似乎立即使用接近250MB的内存,这似乎过分给定我们在该点加载的所有内容都是登录屏幕.我一直在寻找一些Android的内存分析工具(Xamarin分析器和SDK附带的android分析器),但是它们都显示出相对较低的堆使用率(~10-15MB,我试图让它下降).我运行了"adb shell dumpsys meminfo APPNAME -d"并获得了以下跟踪:
** 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
Run Code Online (Sandbox Code Playgroud)
我一直试图通过使用https://developer.android.com/tools/debugging/debugging-memory.html提供的文档来理解这意味着什么,但该页面似乎没有关于最大的罪魁祸首:Gfx dev,EGL mtrack,GL mtrack和Unknown.是否有一些文件说明这些类别是什么或为什么它们会变得如此之大?
谢谢
EGL和GL基本上显示了Graphics层消耗的内存.我相信你adb shell dumpsys meminfo在Android棒棒糖设备上运行命令.实际上dumpsys meminfo工具/命令已在棒棒糖中修改以计算和显示图形内存.
在旧版本(KitKat或更早版本)中,您无法找到EGL和GL信息,尽管图形消耗了KitKat或旧版本中的内存.
这是我们可以请求Google更新其文档以解释新的内存组件.简而言之,你可以说它是Android文档中的错误.他们应该根据adb shell dumpsys meminfo工具/命令的最新实现更新它.
参考文献:
EGL - http://en.wikipedia.org/wiki/EGL_(API)
GL - http://en.wikipedia.org/wiki/OpenGL
GL mtrack是驱动程序报告的GL内存使用情况.它主要是GL纹理大小,GL命令缓冲区,固定全局驱动程序RAM开销等的总和.
EGL mtrack是gralloc内存使用.它主要是SurfaceView/TextureView的总和.
| 归档时间: |
|
| 查看次数: |
6433 次 |
| 最近记录: |