Alc*_*sta 84 java jvm jvm-arguments
我需要运行一个使用超过2GB的Java内存密集型应用程序,但是我遇到了增加堆最大大小的问题.到目前为止,我尝试了以下方法:
设置-Xmx参数,例如-Xmx3000m.这种方法在创建JVM时失败.从我用Google搜索,看起来-Xmx必须小于2GB.
使用-XX:+ AggressiveHeap选项.当我尝试这种方法时,我得到一个"内存不足"错误,告诉堆大小为1273.4 MB,即使我的计算机有8GB内存.
是否有另一种方法可以尝试增加JVM的最大堆大小?以下是计算机规格的摘要:
Run Code Online (Sandbox Code Playgroud)java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
moh*_*oni 93
在32位模式下使用JVM时,可以分配的最大堆大小为1280 MB.因此,如果您想要超越它,则需要在64模式下调用JVM.
您可以使用以下内容:
$ java -d64 -Xms512m -Xmx4g HelloWorld
Run Code Online (Sandbox Code Playgroud)
哪里,
您可以根据您的要求调整-Xms和-Xmx(YMMV)
有关JVM性能调优的非常好的资源,可能需要查看:http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html
G__*_*G__ 14
我相信2GB限制是针对32位Java的.我认为v1.6总是64位,但尝试强制64位模式只是为了看:添加-d64选项.
小智 8
32位Java限制在大约1.4到1.6 GB之间.
引用
32位JVM的最大理论堆限制为4G.由于各种附加约束,例如可用交换,内核地址空间使用,内存碎片和VM开销,实际上限制可以低得多.在大多数现代32位Windows系统上,最大堆大小范围为1.4G到1.6G.在32位Solaris内核上,地址空间限制为2G.在运行32位VM的64位操作系统上,最大堆大小可能更高,在许多Solaris系统上接近4G.
| 归档时间: |
|
| 查看次数: |
348583 次 |
| 最近记录: |