引用-LIBGDX的常量中的性能



为了检查和比较位置,我有很多条件if和开关。在每个帧渲染中可能有数千个对常量的引用:

if(sprite.getY>10.2f) accel+=2f;

抛开可读性不谈,像下面这样的数千行会比上面这样的数千行将快吗?

public static final float MINYPOS = 10.2f;
public static final float ACCELY = 2f;
.....
if(sprite.getY>MINYPOS) accel+=ACCELY;

任何合理的Java编译器都会内联常量(请参阅是否可以禁用javac';s对静态最终变量的内联?,它询问如何阻止这种情况发生)。

不过,通常情况下,您希望根据测量到的性能问题进行优化。首先构建您知道有效的代码(因为这是最困难的部分)。一旦它起作用,你就可以使用工具来衡量它,并决定是否需要优化(通常不会)。

最新更新