当前位置: 首页 > 面试题库 >

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

齐承泽
2023-03-14
问题内容

oracle文档中,我发现:

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

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


问题答案:

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

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

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

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

java -XX:+PrintFlagsFinal -version

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



 类似资料:
  • 当容器加载时,spring boot HikariCP提供的默认连接池大小是多少? 当然,我使用下面的属性来设置最大cp大小,但是我想知道如果我们在application.properties文件中没有给出任何数字,默认的cp大小是多少。 如果我给出application.properties最大池大小为100,而我只使用20,这会影响我的应用程序性能吗?

  • 问题内容: Java SE 6中Sun的JVM的默认最大堆大小是多少(即等效于设置-Xmx)? 貌似对Java SE 5与服务器级计算机,它的 小于物理内存的1/4或1GB。 额外的问题:对于IBM的JVM,您可以提出要求 您可以类似地询问Sun的JVM吗? 编辑 : 我使用Runtime.getRuntime()。maxMemory来确认min(物理内存/ 4,1G),这在Sun文档中已引用。

  • 问题内容: 由于以下原因,我知道如何设置堆栈大小: 如何在Node.js中增加最大调用堆栈大小 但是,默认大小是多少?(即,我如何获得的PHP等效项) 问题答案: 简单的答案是,默认堆栈大小为492 KB(32位)和984KB(64位)。 如soyuka所评论,请尝试以下操作: 要么

  • 问题内容: 如果我从Java命令行中省略了该选项,那么将使用默认值。根据Java文档 “根据系统配置在运行时选择默认值” 哪些系统配置设置会影响默认值? 问题答案: 在Windows上,你可以使用以下命令查找运行应用程序的系统上的默认设置。 堆大小 寻找的选项(对),并为。 在系统上,你可以 我相信结果输出以字节为单位。

  • 据此: 在系统中安装了Maven之后,下一步就是对其进行微调以获得最佳性能。默认情况下,最大堆分配为256-512 MB(-XMS256M到-XMX512M)。在构建大型复杂Java项目时,此默认限制不起作用,建议您至少拥有1024 MB的最大堆。 现在,我认为堆空间和permgen空间的max和min值是由JVM设置的。Maven只能通过我们设置的MAVEN_OPTS env变量来设置它们。那么

  • 我是Java的初学者,刚开始使用Intellij作为我的IDE。 当我使用它时,有时会延迟。 我更改了我的 xms 和 xmx 以获得更大的堆大小(xms = 1024,xmx = 2048),但它抛出了一个错误。 所以,我把它回滚了。 错误消息是这样的:“初始堆大小设置为大于最大堆大小的值”。 有什么问题? 如果可能,如何增加最大堆大小? 我用的是笔记本电脑,它有8GB内存。x64Intelli