哪个更快,为每个游戏对象的属性创建一个数组,或者创建一个包含所有属性的构造函数

b09cbbtk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(282)

所以我在我的“落沙”模拟游戏中有一个粒子,它存储在数组(网格)中,其中一些粒子包含id(水、沙等)、温度和randomnumbergenerator等信息。
存储这些信息的方法是创建一个数组:

temperatureGrid[]=new byte[w*h];

我把每个粒子的温度存储在那里(如果有的话),而不是像这样:

public particle(int x, int y, int temperature, int rng){}

我想知道哪一个更快(注:性能是非常重要的,我知道我应该主要选择可读性)

7tofc5zh

7tofc5zh1#

将所有数据保存在字节数组中的速度更快,原因有很多,包括缓存位置、间接性更少。
使用对象允许更可读、更可维护的代码。如果您使用的是java,这意味着性能不是一个问题。然而,jvm产生的程序非常快。唯一的薄弱环节是高内存使用率,这会给cpu缓存带来压力,并导致频繁的垃圾收集,从而降低程序的执行速度。为了提高性能,可以使用一些技巧,比如减少分配和重用对象。

相关问题