哪个会更好的性能/加载时间? (Java字符串)

时间:2013-10-29 18:14:37

标签: java string performance loading

我正在为我正在用Java制作的游戏加载资源。我的代码中的几个示例行是:

manager.load("game/block.png", Texture.class, param);
manager.load("game/player.png", Texture.class, param);
manager.load("game/point.png", Texture.class, param);
manager.load("game/poison.png", Texture.class, param);
manager.load("game/regen.png", Texture.class, param);

我只是想知道,以上的方式做到这一点会更快(大概有20-30行与此相似),或者这样:

String ext = ".png";

manager.load("game/player" + ext, Texture.class, param);
manager.load("game/point" + ext, Texture.class, param);
manager.load("game/poison" + ext, Texture.class, param);
manager.load("game/regen" + ext, Texture.class, param);

非常感谢任何答案。

2 个答案:

答案 0 :(得分:4)

如果你创建ext变量final那么你编码它的方式并不重要,因为编译器将连接常量并将它们放在常量池中(它也会删除{{1}如果没有引用则完全完全)。编写有助于您阅读和维护的代码。让编译器和JIT处理微优化。

示例:

这两段代码在编译时生成相同的字节码。

ext

public static void main(String[] args){

    final String ext = ".png";

    load("asset1" + ext);
    load("asset2" + ext);
    load("asset3" + ext);
}

都生成此字节码

public static void main(String[] args){


    load("asset1.png");
    load("asset2.png");
    load("asset3.png");
}

答案 1 :(得分:-1)

版本2会更快,但是你几乎无法测量它,因为加载纹理的价格要贵一些。