在我的机器上,我使用相同的命令尝试了两个不同版本的Java,但是其中只有一个正在运行。
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)
$ java -Xms1024000m -Xmx2048000m HelloWorld
'java -Xms1024000m -Xmx2048000...' terminated by signal SIGSEGV (Address boundary error)
但是使用jdk 1.8:
$ java version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
$ java -Xms1024000m -Xmx2048000m HelloWorld
Hello, world!
不确定为什么会有所不同?
PS:我的机器(
OSX 10.11.1 (15B42)
)具有16G Ram,在这里,我给java
很大的内存设置1024000m
(1T
)看看它是否可以工作。我很好奇为什么使用jdk 1.8不会给出任何错误。我的
top
:Processes: 370 total, 5 running, 15 stuck, 350 sleeping, 1781 threads
17:14:59
Load Avg: 1.62, 1.56, 1.61 CPU usage: 4.1% user, 3.54% sys, 92.43% idle SharedLibs: 125M resident, 15M data, 7908K linkedit.
MemRegions: 220057 total, 4808M resident, 111M private, 1500M shared. PhysMem: 12G used (3045M wired), 4273M unused.
VM: 1083G vsize, 527M framework vsize, 33266913(0) swapins, 36305763(0) swapouts. Networks: packets: 256063947/286G in, 534051232/503G out.
Disks: 13058865/366G read, 15889283/505G written.
最佳答案
-Xms1024000m
大约1 TB的内存或大约1000GB。我认为您的意思是使用-Xms1024m -Xmx2048m
关于java - Java 1.6和1.8中的`-Xms`和`-Xmx`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35742272/