java 1.6 32位最小和最大堆内存问题
我已经安装了32位的JRE v1.6。当我尝试按如下方式运行程序时:java 1.6 32位最小和最大堆内存问题,java,memory-management,jvm,jvm-arguments,Java,Memory Management,Jvm,Jvm Arguments,我已经安装了32位的JRE v1.6。当我尝试按如下方式运行程序时: java -Xms1024m -Xmx2048m net.analysis.MyProg 我看到显示以下消息: Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine 据我所知,32位JVM允许的最大堆是2GB。在运行
java -Xms1024m -Xmx2048m net.analysis.MyProg
我看到显示以下消息:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine
据我所知,32位JVM允许的最大堆是2GB。在运行我的代码的计算机上有131061 MB的物理内存(使用Window的任务管理器,128 GB的RAM)
有人知道我做错了什么吗?在您的情况下,限制很可能是32位体系结构和Windows分配虚拟地址空间的方式
根据,在Windows上32位JVM上只能获得1.4Gb到1.6Gb。在您的情况下,限制很可能是32位体系结构和Windows分配虚拟地址空间的方式
根据,在Windows上的32位JVM上只能获得1.4Gb到1.6Gb。AFAIK-堆空间需要是连续的。即使你有足够的可用内存,它也可能是碎片化的…你使用的是什么版本的windows。在许多32位windows上,限制为3GBWTF 128GB的RAM-Envious运行代码的服务器是windows server 2008 R2 Enterprise 64位。其他感兴趣的规格:Intel Xeon CPU X7560@2.27GHz(4个处理器,但任务管理器显示16x4=32个内核)。如果您运行的是32位windows应用程序,则仅限于windows XP仿真的功能。不管您有多少内存,32位windows将您的堆限制为1.2-1.4 GB。您确实应该使用64位JVM.AFAIK—堆空间需要是连续的。即使你有足够的可用内存,它也可能是碎片化的…你使用的是什么版本的windows。在许多32位windows上,限制为3GBWTF 128GB的RAM-Envious运行代码的服务器是windows server 2008 R2 Enterprise 64位。其他感兴趣的规格:Intel Xeon CPU X7560@2.27GHz(4个处理器,但任务管理器显示16x4=32个内核)。如果您运行的是32位windows应用程序,则仅限于windows XP仿真的功能。不管您有多少内存,32位windows将您的堆限制为1.2-1.4 GB。你真的应该使用64位JVM。我认为你是对的。我尝试了以下方法:java-Xms1g-Xmx1536m net.analysis.MyProg。因此,大约1.5Gb是限制。非常感谢。我想你是对的。我尝试了以下方法:java-Xms1g-Xmx1536m net.analysis.MyProg。因此,大约1.5Gb是限制。谢谢。