拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Spring Boot 默认内存设置是什么?

Spring Boot 默认内存设置是什么?

白鹭 - 2022-06-25 2172 0 2

一、概述

在本教程中,我们将了解Spring Boot 应用程序使用的默认内存设置。

一般来说,Spring 没有任何特定于内存的配置,它使用底层Java 进程的配置运行。下面是我们可以配置Java 应用程序内存的方法。

2.内存设置

Java 进程或JVM 的内存在堆、堆栈、元空间、JIT 代码缓存和共享库之间划分。

2.1。

堆是对象所在的内存部分,直到被垃圾收集器收集为止。

最小堆的默认值为8 Mb 或8 Mb 到1 Gb 范围内的物理内存的1/64

对于大于192 MB 的物理内存,最大堆的默认值为物理内存的1/4,否则为物理内存的1/2

在堆内部,我们有托儿所大小限制,当超过该限制时,会导致新一代垃圾收集运行。它的默认值是特定于平台的

我们也有保留区域限制。它是总堆大小的百分比,当达到时会导致足够长的存活对像从年轻代提升到老年代。其默认值为25%。

从Java 8 开始,我们还将元空间作为存储所有类元数据的堆的一部分。默认情况下,它的最小值是平台相关的,最大值是无限的

要覆盖最小堆、最大堆和元空间大小的默认值,请参阅这篇关于配置堆大小的帖子。

我们可以使用-Xns参数覆盖Nursery 大小限制。由于Nursery 是堆的一部分,它的值不应大于-Xmx值:

java -Xns:10m MyApplication

我们还可以使用XXkeepAreaRatio参数覆盖保留区域限制的默认值。例如,我们可以将其设置为10 %:

java -XXkeepAreaRatio:10 MyApplication

最后,这是我们在Linux 上检查堆大小的方法:

java -XX:+PrintFlagsFinal -version | grep HeapSize

在Windows 上检查堆大小的相同命令将是:

java -XX:+PrintFlagsFinal -version | findstr HeapSize

2.2.堆

它是提供给每个线程执行的内存量。它的默认值是特定于平台的

因此,我们可以使用-Xss参数定义线程堆栈大小。例如,我们可以将其分配为512 kB:

java -Xss:512k MyApplication

然后我们可以检查Linux 上的线程堆栈大小:

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

或者在Windows 机器上做同样的事情:

java -XX:+PrintFlagsFinal -version | findstr ThreadStackSize

三、结论

在本文中,我们了解了Java 应用程序可用的各种堆和堆栈内存配置选项的默认值。

因此,在启动我们的Spring Boot 应用程序时,我们可以根据我们的要求定义这些参数。


标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *