我目前有一个空白的LibGDX
应用程序,它确实没有没有。它不渲染任何东西,也不更新任何东西。这只是一个空的Screen
。当我将应用程序部署到Android时,我遇到了一些可怕的内存消耗。使用DDMS我创建以下堆转储应用程序时,我的设备上运行:Android图形巨大的堆内存消耗? - LibGDX
最显著使用内存为13.163 MB 1字节数组分配。这不是半堆吗?!
我检查了分配,看到什么指着被分配的大小:
现在使用Eclipse MAT我分析堆转储:
所以内存的高度使用仍然来自byte []数组。 分析字节[]段还我想出了这一点:
我现在看到了巨大的byte []分配是从Android的图形来。我甚至没有画任何东西!有什么办法可以避免让这个应用的Android图形部分占用一半的堆。这只会导致在事情正在进行时发生超量垃圾收集,或者这是正常的,我只需要处理它呢?
注:我与libGDX版本1.4在三星Galaxy S4运行这个(或任何最新版本)
更新:我没有发现,14-13MB字节数组分配是正常的应用但我仍然有问题。我的堆大小太小。如果Android图形占用了我的一半堆,我就没有什么用处,垃圾收集器变得疯狂了。在另一个我用老版本的libgdx创建的应用程序(一个不可否认更糟糕的应用程序)和堆大小为73 Mb。我怎样才能增加堆大小?我认为73 MB是相当大的,你可以看到大部分没有被使用。这里是旧的应用程序的堆统计:
您是否尝试过分配一些垃圾来尝试超过第一个具有小堆大小的应用程序的堆大小?如果你没有,那就这样做。完成后会自动增加堆大小吗? – 2014-11-06 11:47:37