【发布时间】:2015-03-30 10:54:04
【问题描述】:
我正在编写一个游戏引擎,其中包含在 ArrayList 中的一组对象使用 for 循环进行迭代。显然,效率是相当重要的,所以我想知道循环的效率。
for (String extension : assetLoader.getSupportedExtensions()) {
// do stuff with the extension here
}
其中getSupportedExtension() 返回ArrayList 的Strings。我想知道是否每次循环遍历新扩展时都会调用该方法。如果是这样,这样做会更有效吗:
ArrayList<String> supportedExtensions = ((IAssetLoader<?>) loader).getSupportedExtensions();
for (String extension : supportedExtensions) {
// stuff
}
?提前致谢。
【问题讨论】:
-
一般来说,如果您担心性能......然后考虑进行真正的分析。
-
@EddyG - 不一定..您不必总是进行分析..考虑OP的问题..调查字节码会给你正确的答案..在字节码中,方法在这两种情况下只会被调用一次..
-
你有一个类似的帖子来回答你的问题:stackoverflow.com/questions/6093537/for-loop-optimization
-
@TheLostMind 我同意有低悬的果实。但进一步的优化应该以运行时行为的评估为指导。否则你可能会浪费你的时间。
-
@EddyG - 我通常会在进行分析之前进行字节码分析。但那就是我:P
标签: java performance game-engine