18 February 2013

今天在水木java版看到一个讨论java内存使用的帖子,讨论java对象内存使用及overhead,可以看出来java与c、c++相比,在内存使用上还是有一些需要注意的地方。

以下这段话引用自hunterlee@newsmth在java版的帖子:

java的内存开销比一般人想象的大很多,例如100个entry的TreeMap82%的内存都是overhead做web开发可能没有太多感觉,但如果跑稍微大规模数据的算法,就会发现这是个很严重的问题。所以我现在都尽量用trove4j这样的库,而不用标准库。


可以看出来,java复杂对象的内存效率还是挺恐怖的。

以下两个附件也来自水木上的讨论,供大家参考。

附1:JAVA对象内存占用示意图:

java对象内存占用示意图

附2:JAVA内存效率手册

memory-efficient-java-tutorial