在oracle文档中,我发现:
-Xmxsize以字节为单位指定内存分配池的最大大小(以字节为单位)…默认值是在运行时根据系统配置选择的。
这是什么 系统配置 是什么意思?
它取决于实现和版本,但通常取决于所使用的VM(例如,客户端或服务器,see -client和-server参数)以及您的系统内存。
-client
-server
client默认值通常是物理内存的1/4或1GB(以较小者为准)。
client
Java配置选项(命令行参数)也可以“外包”给环境变量,包括-Xmx,可以更改默认值(意味着指定新的默认值)。具体来说JAVA_TOOL_OPTIONS,所有Java工具都会检查环境变量,并在环境变量存在时使用它(此处和此处提供更多详细信息)。
-Xmx
JAVA_TOOL_OPTIONS
您可以运行以下命令以查看默认值:
java -XX:+PrintFlagsFinal -version
它为您提供了一个清单,-Xmx位于中MaxHeapSize,-Xms位于中InitialHeapSize。过滤您的输出(例如|grep在Linux上)或将其保存在文件中,以便您可以在其中搜索。
MaxHeapSize
-Xms
InitialHeapSize
|grep