Java Readyboost和JVM

Java Readyboost和JVM,java,memory,Java,Memory,我正在使用具有Readyboost属性的记忆棒 Java无法识别记忆棒中的额外内存(如果为了使用记忆棒,我将Xmx设置为超过计算机RAM值的值,我会得到错误: Error occurred during initialization of VM Error: Could not create the Java Virtual Machine. Could not reserve enough space for object heap Error: A fatal exception has o

我正在使用具有Readyboost属性的记忆棒

Java无法识别记忆棒中的额外内存(如果为了使用记忆棒,我将Xmx设置为超过计算机RAM值的值,我会得到错误:

Error occurred during initialization of VM
Error: Could not create the Java Virtual Machine.
Could not reserve enough space for object heap
Error: A fatal exception has occurred. Program will exit.)
你能给我一个解决方案吗? 谢谢!

首先,它是一种磁盘缓存功能(用于持久性存储等)-它与物理可寻址RAM/虚拟地址空间无关

其次,-Xmx Java设置仅设置最大堆。由于perm gen空间和VM库/开销,JVM总共需要使用超过此值的值。有关更多详细信息,请参阅此处:


此外,根据您使用的操作系统(我假设是Windows 32位?),您不能为单个进程分配超过指定数量的内存(通常为2 GiB)。大多数64位操作系统不受此限制。

有一个打开(32b)的开关windows服务器允许进程使用3G的ram,但sun/oracle的jvm不支持这一点,但JRocket支持(或在我上次使用它时习惯)。需要注意的一点是,如果使用NIO,这可能需要大量内存,从而限制了jvm堆的可用容量。@vickirk确切地说,jvm加载的任何本机库等都位于Java堆的顶部。