我将字符串数组声明为:
String[] items1 = new String[5];
String[] items2 = new String[20];
如果这两个数组都只包含 2 个元素,会对内存和性能产生多大影响。
你可以自己测试一下。
public static void main(String... args) {
long free1 = free();
String[] two = new String[2];
long free2 = free();
String[] twenty = new String[20];
long free3 = free();
if (free3 == free1) System.err.println("You need to use -XX:-UseTLAB");
System.out.println("String[2] took " + (free1 - free2) + " bytes and String[20] took " + (free2 - free3) + " bytes.");
}
private static long free() {
return Runtime.getRuntime().freeMemory();
}
prints
String[2] took 24 bytes and String[20] took 96 bytes.
所以你可能会浪费 72 字节的内存。如果您的内存每 GB 成本为 10 美元,那么您可能会浪费 0.000072 美分的内存。然而,您的一秒钟时间可能只值 2 美分。在这种情况下,实际上不值得花一毫秒的时间来担心它。也就是说,写 20 而不是 2 所花费的时间要值得多得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)