【问题标题】:Default values for Xmx, Xms, MaxPermSize on non-server-class machines非服务器类机器上 Xmx、Xms、MaxPermSize 的默认值
【发布时间】:2011-11-21 09:06:44
【问题描述】:

非服务器类机器上的 Java 6 中以下选项的默认值是什么

  • -Xmx
  • -XX:MaxPermSize

Oracle 的 documentation 声明:

在运行服务器 VM 的服务器级机器上,垃圾收集器 (GC) 已从以前的串行收集器 (-XX:+UseSerialGC) 更改为并行收集器 (-XX:+UseParallelGC)。

在运行带有并行垃圾收集器 (-XX:+UseParallelGC) 的 VM(客户端或服务器)的服务器级机器上,初始堆大小和最大堆大小已更改

该页面没有描述非服务器类机器的默认值,仅描述了,例如,初始堆大小是“合理的最小值”。查看the 'man page'java 命令有以下针对-Xms

默认值在运行时根据系统配置选择

【问题讨论】:

    标签: jvm jvm-arguments


    【解决方案1】:

    Windows 7/32 位 JDK 1.6.0_29 的默认值:

    -Xmx256m
    -XX:MaxPermSize=64m
    

    这些选项的值也可以通过以下命令打印出来:

    java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 2>&1
    

    然后查找 MaxHeapSize 和 MaxPermSize 键并查看默认值。

    uintx InitialHeapSize                          := 199947456       {product}
    uintx MaxHeapSize                              := 268435456       {product}           
    uintx MaxPermSize                               = 67108864        {pd product}        
    

    Here 是 Ultimate HotSpot VM 选项备忘单,其中包含 JDK 最新 5 个版本(7、8、9、10 和 11)的默认值和说明。

    【讨论】:

    • 当我尝试运行 java -XX:+PrintFlagsFinal 时,我得到 Unrecognized VM option '+PrintFlagsFinal'
    • Svish,你的 JVM 是什么版本的?
    • 不适用于1.5.0_22,但适用于1.7.0_07,所以这是在1.6 中添加的还是什么?
    • 这里的“无默认值”是什么意思?没有默认的时候默认是什么?
    • 抱歉,-Xms 选项的默认值与 InitialHeapSize 键一起存储。
    猜你喜欢
    • 2016-11-14
    • 2017-09-04
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多