非服务器级机器上的Xmx,Xms,MaxPermSize的默认值

非服务器级别的机器上,Java 6中下列选项的默认值是什么?

  • -Xmx
  • -XX:MaxPermSize参数

Oracle的文档指出:

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

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

该页面没有描述非服务器级机器的默认值,只是例如初始堆大小是“合理的最小值”。 查看java命令的“man page” ,对于-Xms有以下几点:

默认值是在运行时根据系统configurationselect的

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} 

在这里看到更多细节。