知識庫 / Spring / Spring Boot RSS 訂閱

Spring Boot 默認內存設置有哪些?

Spring Boot
HongKong
6
12:00 PM · Dec 06 ,2025

1. 概述

在本教程中,我們將學習 Spring Boot 應用程序使用的默認內存設置。

通常,Spring 沒有內存特定的配置,它會使用底層 Java 進程的配置運行。因此,以下是我們可以配置 Java 應用程序內存的方法。

2. 內存設置

Java 進程或 JVM 的內存被劃分為堆、棧、 元區、JIT 代碼緩存和共享庫。

2.1. 堆 (Heap)

堆 (Heap) 是指對象在垃圾收集器回收之前存儲的內存區域。

默認情況下,最小堆 (minimum heap) 的值是 8 MB 或物理內存的 1/64,範圍在 8 MB 到 1 GB 之間

最大堆 (maximum heap) 的默認值是 對於物理內存大於 192 MB 的情況,為物理內存的 1/4;否則,為物理內存的 1/2

在堆 (Heap) 內部,我們有幼年代大小限制 (nursery size limit)。當該限制超過時,會導致新的生成器垃圾回收運行。 其默認值取決於平台

我們還擁有保留區限制 (keep area limit)。它指的是總堆大小的百分比,當該百分比達到時,足夠長壽的對象會被從年輕代 (young generation) 提升到老代 (old generation)。 其默認值為 25%

自 Java 8 以來,我們還擁有元空間 (meta-space) 作為堆的一部分,其中存儲了所有類元數據。 默認情況下,其最小值為 <nbsp;平台相關,最大值為無限。

要覆蓋最小堆、最大堆和元空間大小的默認值,請參閲有關配置堆大小的這篇帖子。

我們可以使用 -Xns 參數覆蓋幼年代大小限制。 由於幼年代是堆的一部分,其值不應大於 -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 參數來定義線程堆棧大小。例如,我們可以將其分配為 512KB:

java -Xss:512k MyApplication

我們可以然後在 Linux 上檢查線程堆棧大小:

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

或者在 Windows 機器上執行相同的操作:

java -XX:+PrintFlagsFinal -version | findstr ThreadStackSize

3. 結論

本文介紹了 Java 應用程序中可用的堆和棧內存配置選項的默認值。

因此,在啓動 Spring Boot 應用程序時,我們可以根據我們的要求定義這些參數。

有關進一步的調整選項,請參閲 官方指南。 此外,要查看所有配置參數的列表,請參閲此 文檔

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.