【问题标题】:Performance in constants referencing - LIBGDX常量引用的性能 - LIBGDX
【发布时间】:2015-03-29 22:46:50
【问题描述】:

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

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 performance libgdx scene2d


    【解决方案1】:

    任何合理的 Java 编译器都会内联常量(参见 is it possible to disable javac's inlining of static final variables?,它询问如何阻止它发生)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-24
      • 2014-07-28
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多