我正在关注
this question并发现所有信息都已过时.
它声称最大堆大小计算如下:
Smaller of 1/4th of the physical memory or 1GB. Before J2SE 5.0, the default maximum heap size was 64MB. You can override this default using the -Xmx command-line option.
这显然是假的,因为我测试的机器有12 GB的RAM和4096 MB,用java -XX验证:PrintFlagsFinal -version | grep HeapSize.但需要注意的是:
Note: The boundaries and fractions given for the heap size are correct for J2SE 5.0. They are likely to be different in subsequent releases as computers get more powerful.
哪个好极了!除了我找不到任何关于此的最新文档.
我确认我正在运行服务器级per this question.为什么这很重要?因为我的12 GB服务器类机器默认为170 MB.一切都打破了.是的,我知道我可以覆盖它.我宁愿不必在我运行的每个应用程序中复制该覆盖,我宁愿不将其硬编码到pom文件中.更重要的是,这个数字在我的机器上以某种方式随机改变,我需要了解它是如何被碰撞的.
这是我的java版本:
$java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
我在Mac OS X 10.9.2上.