一尘不染

Java 8中的默认Xmxsize(最大堆大小)

java

oracle文档中,我发现:

-Xmxsize以字节为单位指定内存分配池的最大大小(以字节为单位)…默认值是在运行时根据系统配置选择的。

这是什么 系统配置 是什么意思?


阅读 2154

收藏
2020-09-08

共1个答案

一尘不染

它取决于实现和版本,但通常取决于所使用的VM(例如,客户端或服务器,see -client-server参数)以及您的系统内存。

client默认值通常是物理内存的1/4或1GB(以较小者为准)。

Java配置选项(命令行参数)也可以“外包”给环境变量,包括-Xmx,可以更改默认值(意味着指定新的默认值)。具体来说JAVA_TOOL_OPTIONS,所有Java工具都会检查环境变量,并在环境变量存在时使用它(此处此处提供更多详细信息)。

您可以运行以下命令以查看默认值:

java -XX:+PrintFlagsFinal -version

它为您提供了一个清单,-Xmx位于中MaxHeapSize-Xms位于中InitialHeapSize。过滤您的输出(例如|grep在Linux上)或将其保存在文件中,以便您可以在其中搜索。

2020-09-08