leopard – 为什么Java虚拟内存预留如此之高?错误?
作者:互联网
在我的Mac OS 10.5.8服务器上,Java正在保留16,777,216TB(比sum of all human knowledge -eek!大约多三分之一!)的虚拟内存.我知道它并没有真正保留这个(如果是这样的话会非常棒!);是否需要担心(即错误/故障),如果不是,它是什么意思?
解决方法:
16 Mebi TebiBytes(16 ExbiBytes)是2 ^ 64字节.您的计算机必须使用64位寻址,并且您的JVM(Java虚拟机)可能会在其自己的虚拟地址空间中写入一些内容来寻址0xffffffffffffffffff(可能是意外地写入了小于0x0000000000000000的地址),导致Mac OS X内核的虚拟内存子系统要考虑该进程要使用该进程的整个虚拟地址空间.
别担心,虚拟内存很稀疏.也就是说,它不会为每个映射地址分配内存页(或磁盘上的交换空间),只是为您的进程实际写入的内存页分配.但我想这已经很明显了,除非你碰巧在/ var / vm / /你的虚拟内存交换文件所在的位置安装了16个ExbiByte RAID.
标签:osx-server,java,leopard 来源: https://codeday.me/bug/20190817/1682755.html