Java中的文件大小与内存大小的比较

imr*_*ole 13 c++ java memory

如果我在磁盘上获取大约2kB的XML文件,并将内容作为String加载到Java内存中,然后测量对象大小,它大约为33kB.

为什么规模会大幅增加?
如果我在C++中做同样的事情,内存中生成的字符串对象更接近2kB.

要用Java测量内存,我正在使用Instrumentation.对于C++,我采用序列化对象的长度(例如字符串).

Che*_*lin 2

在Java中,String对象有一些额外的数据,这会增加它的大小。
它是对象数据、数组数据和一些其他变量。这可以是数组引用、偏移量、长度等。

有关详细信息,请访问http://www.javamex.com/tutorials/memory/string_memory_usage.shtml