Man*_*lva 4 java memory arrays
为什么以下行
Object[] objects = new Object[10000000];
导致JVM使用大量内存(~40M)?有什么方法可以在分配数组时了解VM的内部工作原理吗?
Jon*_*eet 22
好吧,它为10000000个引用分配了足够的空间,以及数组对象本身的少量开销.
实际大小将取决于虚拟机-但它肯定不会奇怪,它占用的内存相当数量的...我预计至少 40MB,并且大概80MB的64位虚拟机,除非它是使用压缩哎呀为阵列.
当然,如果使用那么多不同的对象填充数组,那将占用更多,更多的内存......但是数组本身仍然只需要用于引用的空间.
Ale*_*ort 17
"很多记忆"是什么意思?你分配10000000个指针,每个指针占用4个字节(在32位机器上) - 这大约是40mb的内存.
归档时间:
15 年,3 月 前
查看次数:
5985 次
最近记录:
10 年,5 月 前