Libgdx强制垃圾收集器

时间:2016-04-12 21:12:06

标签: java android libgdx

我的游戏由主菜单(25个对象 - >它是动态菜单,一切都在移动),游戏结束(3个对象),游戏屏幕(15-20个对象),游戏商店(40个对象)组成。 ..所以我的游戏使用了大约50mb的ram然后稳步增加,因为我正在创造这么多的物体!

但当然我只是在我的主菜单中使用命令System.gc(),现在它总是大约25mb,似乎没有问题!但人们说这是不好的做法。

但是屏幕被破坏了,我不想保留那些浪费我RAM的对象,所以看起来这是唯一的解决方案!

1 个答案:

答案 0 :(得分:3)

我建议你使用libgdx的内存管理方式,确保你处理所有实现一次性的对象,你可以找到一次性对象列表 here ,你也可以use object Pooling是libgdx中使用的内存管理的常用模式:

关于libgdx wiki:

  

对象池是重用非活动或"死"的原则。对象,   而不是每次都创建新对象。这是通过   创建一个对象池,当你需要一个新对象时,你就可以获得它   从那个游泳池。如果池有可用(免费)对象,则为   回。如果池为空,或者不包含空闲对象,则a   创建并返回该对象的新实例。当你不再   需要一个对象,你自由"它,这意味着它被返回到池中。   这样,对象分配内存被重用,垃圾收集器就是   高兴。

<强> Object pooling