哪一个更有内存效率?

时间:2014-09-24 09:02:54

标签: java minecraft-forge

我正在制作一个Minecraft mod而且我不知道哪一个更值得推荐。

Block[] blocks = new Block[] {BlueBlock, MeatBlock, ....};
for (Block bls : blocks)
    GameRegistry.registerBlock(bls, bls.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(BlueBlock, "BlueBlock");
GameRegistry.registerBlock(MeatBlock, "MeatBlock");
GameRegistry.registerBlock(..., "...");

2 个答案:

答案 0 :(得分:2)

后者效率更高。第一个创建数组,然后遍历数组并在其中注册内容,而第二个只是注册所有内容,尽管性能几乎不可察觉,因为这发生在Forge加载的PRE_INITIALIZATION阶段。

答案 1 :(得分:1)

第二个将减少计算,第一个更自动化,这对于懒惰更好。 在记忆方面,它不应该变化很大,只有块会存储一些数据,之后应该被销毁,(垃圾收集器,如果是这样)。 无论如何,这是一个非常小的差异。但如果处理成千上万的第二个会更快但写作很痛苦。