所以我在我的“落沙”模拟游戏中有一个粒子,它存储在数组(网格)中,其中一些粒子包含id(水、沙等)、温度和randomnumbergenerator等信息。
存储这些信息的方法是创建一个数组:
temperatureGrid[]=new byte[w*h];
我把每个粒子的温度存储在那里(如果有的话),而不是像这样:
public particle(int x, int y, int temperature, int rng){}
我想知道哪一个更快(注:性能是非常重要的,我知道我应该主要选择可读性)
1条答案
按热度按时间7tofc5zh1#
将所有数据保存在字节数组中的速度更快,原因有很多,包括缓存位置、间接性更少。
使用对象允许更可读、更可维护的代码。如果您使用的是java,这意味着性能不是一个问题。然而,jvm产生的程序非常快。唯一的薄弱环节是高内存使用率,这会给cpu缓存带来压力,并导致频繁的垃圾收集,从而降低程序的执行速度。为了提高性能,可以使用一些技巧,比如减少分配和重用对象。