如果我在磁盘上获取大约2kB的XML文件,并将内容作为String加载到Java内存中,然后测量对象大小,它大约为33kB.
为什么规模会大幅增加?
如果我在C++中做同样的事情,内存中生成的字符串对象更接近2kB.
要用Java测量内存,我正在使用Instrumentation.对于C++,我采用序列化对象的长度(例如字符串).
在Java中,String对象有一些额外的数据,这会增加它的大小。
它是对象数据、数组数据和一些其他变量。这可以是数组引用、偏移量、长度等。
有关详细信息,请访问http://www.javamex.com/tutorials/memory/string_memory_usage.shtml。
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |