请解释一下JVM中XmsXmx参数的用法.它们的默认值是什么?

推荐答案

标志Xmx指定Java虚拟机(JVM)的最大内存分配池,而标志Xms指定初始内存分配池.

这意味着您的JVM将以Xms个内存量启动,最多可以使用Xmx个内存量.例如,像下面这样启动一个JVM将以256 MB的内存启动它,并允许进程使用多达2048 MB的内存:

java -Xms256m -Xmx2048m

内存标志也可以以不同的大小指定,例如千字节、兆字节等.

-Xmx1024k
-Xmx512m
-Xmx8g

Xms标志没有默认值,Xmx的默认值通常为256 MB.这些标志的一个常见用法是当你遇到一个java.lang.OutOfMemoryError.

在使用这些设置时,请记住这些设置是针对JVM的heap的,JVM可以而且将使用比分配给堆的大小更多的内存.从Oracle's documentation开始:

请注意,JVM使用的内存比堆多.例如,Java方法、线程堆栈和本机句柄被分配在与堆以及JVM内部数据 struct 分开的内存中.

Java相关问答推荐

当列顺序更改时,Table View列列表的Change. wasPermanted()总是返回假

RDX触发ChoiceBox转换器(并按字符串值排序)

Android视图覆盖不阻止点击它后面的控件

当我用OkHttpClient重写shouldInterceptRequest来发布数据时,Android WebView正在以纯HTML加载URL内容

缩小画布比例后更改滚动窗格的内部大小

在模拟超类中设置非setter属性的值

存根基类的受保护方法

无法初始化JPA实体管理器工厂:无法确定为Java类型<;类>;推荐的JdbcType

当Volatile关键字真的是必要的时候?

如何在Microronaut中将 map 读取为 map

如果第一位数字和最后一位数字相差超过一位,您将如何获得随机数?

使用SWIG将C++自定义单元类型转换为基本Java类型

如何在ImageIO或十二只猴子中旋转TIFF CMYK图像?

嘲笑黄瓜中的对象

在ECLIPSE上的M1 Pro上运行JavaFX的问题

使用@ExceptionHandler的GlobalExceptionHandler还是来自服务器的REST应答的ResponseEntity?

我无法在我的Spring Boot应用程序中导入CSV依赖项

Cucumber java-maven-示例表-未定义一步

多线程、并发和睡眠未按预期工作

如何在Selenium上继续使用最新的WebDriver版本