单个对象图或单独(大尺寸)

时间:2016-11-02 19:43:54

标签: java performance libgdx hashmap

我使用的是libGDX,还有一个PoolsObjectMap,其中包含Pool(s)。

效果 / projectiles 创建单独的ObjectMap或使用Pools类(简单方法)是否更好。

赢得了大ObjectMap减速get(Class)方法,还是表现失败?

Java Doc:

  

/ **无序地图。这个实现是一个使用3的布谷鸟哈希映射   哈希,随机行走,以及有问题*键的小藏匿处。   不允许空密钥。允许空值。没有分配   除了增加表格大小外完成。
* * *这张地图   执行非常快的get,containsKey和remove(通常为O(1),最差   case O(log(n)))。 Put可能会慢一点,*取决于哈希   碰撞。负载系数大于0.91大大增加了   地图将不得不重新调整到下一个更高的POT大小。 *   @author Nathan Sweet * /

1 个答案:

答案 0 :(得分:1)

最好坚持使用Pools课程。我认为你误解了这门课的运作方式。 Pools类存储ObjectMap,它按类类型存储对象池。

例如,如果你执行Pools.obtain(Bullet.class),该类将找到一个Bullet池,并从那里创建一个对象。您可能拥有的任何其他课程都会发生同样的情况。这意味着您在一个对象图中只有几个池。

除非您拥有数千或数百万种不同数据类型的数据,否则使用此类非常合适。