简单总结:
1.数据库记录放在JAVA里,用对象(ORM一般的处理方式)需要3-4倍左右的内存空间,用HashMap这种KV保存需要10倍空间;
2.如果你主要数据是text大文本,那空间一般可以按2倍估算。
后面找个例子验证一下。
参考文章:
如何估算内存消耗https://blog.csdn.net/dnc8371/article/details/106704798
关键结论:
对于不耐烦的用户,答案将是从大约等于5 x [Live Data占用的内存量]的内存开始,然后从那里开始进行微调。将最大堆大小设置为3-4 x [实时数据大小]
关键结论:
根据这个简单测试,我们可以总结一个结论:1.数据库记录放在JAVA里,用对象(ORM一般的处理方式)需要3-4倍左右的内存空间,用HashMap这种KV保存需要10倍空间;
2.如果你主要数据是text大文本,那空间一般可以按2倍估算。
其他:
现在主机一般都是64位, 64位JVM从JDK1.6.45开始,当JVM最大内存小于32GB时,自动打开压缩指针特性,这样对象的内存占用空间少很多,由上表可以看出,至少减少1/3的空间。
关键结论:
内存计算工具lucene-core
JVM中对象大小必须是8字节的整倍数,如果没有达到的话会通过对齐补充自动补全,再加上一个byte类型大小为17字节,但是不是8的倍数,所以会补充到24个字节