常量引用的性能 - LIBGDX

Performance in constants referencing - LIBGDX

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

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 编译器都会内联常量(参见 is it possible to disable javac's inlining of static final variables?,它询问如何阻止它发生)。

不过,一般来说,您希望根据测得的性能问题进行优化。从构建您知道有效的代码开始(因为这是困难的部分)。一旦它起作用,您就可以使用工具对其进行测量并决定是否需要对其进行优化(通常不需要)。