为了检查和比较位置,我有很多条件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;
答案 0 :(得分:2)
任何合理的Java编译器都会内联常量(请参阅is it possible to disable javac's inlining of static final variables?,它询问如何阻止它发生)。
但是,通常,您希望根据测量的性能问题进行优化。首先构建您知道可行的代码(因为那是困难的部分)。一旦它工作,你可以使用工具来测量它,并决定是否需要优化(通常它不会)。