2016-09-25 50 views
0

我找到了answer for desktops,但我找不到任何Android/iOS(假设我可以使用OpenGL ES 3.0)。所以这是移动设备的相同问题:是否有可能以编程方式获取由我的应用程序使用的OpenGL总字节数?如何获取移动设备中OpenGL使用的内存总量?

注:我是与非通用解决方案确定(据我所知通用解决方案不存在),但一些流行的设备工作至少(的iOS/Snapdragon的/ ..)

+0

你想知道OpenGL使用的gpu内存?为什么你需要知道这个? – Sung

+0

@SungWoo我正在Xamarin&OpenTK编写一个跨平台的移动游戏引擎,如果有一个可以显示诸如绘图调用次数,内存和GPU使用情况等帮助快速识别泄漏的调试小部件将是很好的。 – sydd

回答

3

不,它不是可以通过任何标准的API。

大多数图形驱动程序都会将任何图形内存记录到进程中,因此您始终可以使用“top”命令行实用程序来获取总进程内存。它无法隔离图形内存,但它应该让你知道你的过程总共使用了多少。这就是说,你可能有一个相当不错的想法,你使用GLES API上传/分配存储的数据量,这可能是对总内存空气估计的一个好手指。大部分大容量存储与应用程序资产相关。

+0

>你总是可以使用“顶级”命令行工具获取全部进程内存 - 而不是在Android或iOS上(问题的关键)AFAIK。移动设备上的非标准API有可能吗?我在评论中看到的桌面链接也是关于扩展。 – sydd

+0

安装busybox或类似的Android的东西,它会正常工作; Linux内核信息始终从procfs中导出。我认为唯一的限制是如果你想运行命令行busybox,你需要植入设备;不知道是否可以在APK中打包,但它应该是... – solidpixel

+0

我正在编写一个图形引擎,要求用户根目录有点太多:/ – sydd