Java 優化springboot jar 內存 年輕代和老年代的比例 減少垃圾清理耗時 如調整 -XX:NewRatio

-XX:NewRatio 是 Java Virtual Machine (JVM) 的一個選項,用于調整 年輕代(Young Generation)和 老年代(Old Generation)之間的內存比例。

1. 含義

XX:NewRatio=N 用于指定 老年代 與 年輕代 的內存比例。

N 的含義:

老年代內存占整個堆內存的比例為 (N / (N + 1))。
年輕代內存占整個堆內存的比例為 (1 / (N + 1))。

例如:

-XX:NewRatio=3:
老年代占堆內存的 3/4。
年輕代占堆內存的 1/4。

2. 默認值

HotSpot JVM 中,NewRatio 的默認值為 2:
老年代占堆內存的 2/3。
年輕代占堆內存的 1/3。

3. 使用場景

根據應用程序的內存分配需求,可以調整 NewRatio:

對象生命周期較長的應用(如服務器應用):
推薦使用較高的 NewRatio(如 3 或更高),將更多的堆內存分配給老年代。

對象生命周期較短的應用(如計算密集型應用):
推薦使用較低的 NewRatio(如 2 或更低),將更多的堆內存分配給年輕代。

4. 示例

啟動參數設置

java -XX:NewRatio=3 -Xms512m -Xmx512m -jar myapp.jar

堆內存分布計算
假設堆大小為 512 MB 且 -XX:NewRatio=3:

年輕代:512 MB / (3 + 1) = 128 MB
老年代:512 MB - 128 MB = 384 MB

5. 注意事項

與其他 GC 選項的關系:

如果使用 G1 GC(-XX:+UseG1GC),NewRatio 可能不起作用,因為 G1 GC 會根據應用動態調整堆內存劃分。

對象分配失敗的影響:

如果年輕代內存分配太小,可能導致頻繁的 Minor GC。
如果老年代內存分配太小,可能導致頻繁的 Major GC 或 Full GC。
建議:

監控應用內存使用情況(通過工具如 jstat、VisualVM 或 Java Mission Control),根據實際需要調整。

6. 常見調優組合

初始堆大小和最大堆大小:

-Xms512m -Xmx1024m

年輕代內存固定大小(替代 NewRatio):

-XX:NewSize=128m -XX:MaxNewSize=128m

GC 日志分析:

-Xlog:gc*:gc.log

通過合理調整 NewRatio 和其他 JVM 參數,可以有效優化 Java 應用的內存使用和 GC 行為!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63725.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63725.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63725.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

統信UOS 1071 AI客戶端接入本地大模型配置手冊

文章來源:統信UOS 1071本地大模型配置手冊 | 統信軟件-知識分享平臺 1. OS版本確認 1.1. 版本查看 要求:計算機,屬性,查看版本(1070,構建號> 101.100) 2. UOS AI版本確認 UOS AI,設置&am…

定時任務——定時任務技術選型

摘要 本文深入探討了定時任務調度系統的核心問題、技術選型,并對Quartz、Elastic-Job、XXL-Job、Spring Task/ScheduledExecutor、Apache Airflow和Kubernetes CronJob等開源定時任務框架進行了比較分析,包括它們的特點、適用場景和技術棧。文章還討論了…

【ArcGIS Pro微課1000例】0064:柵格目錄、柵格數據集、鑲嵌數據集

一、柵格目錄與柵格數據集 1. 定義 柵格目錄:是一個用于管理和組織柵格數據集的結構,通常包含多個柵格數據集的元數據和索引信息。它相當于一個文件夾,里面可以存放多個柵格文件。可以將工作空間轉柵格目錄。 柵格數據集:是指單個的柵格數據文件,包含了具體的空間數據,…

Java基礎 | 數據庫的命名規范

數據庫的命名規范 1. 基本原則2. 命名規范詳解2.1 命名禁止項2.2 命名規范3. 通用字段規范4. 特殊表命名建議 1. 基本原則 統一性:全庫采用一致的命名規范簡潔性:在表達清晰的前提下盡量簡短規范性:遵循數據庫標準規范可讀性:命名…

麒麟操作系統服務架構保姆級教程(二)sersync、lsync備份和NFS持久化存儲

如果你想擁有你從未擁有過的東西,那么你必須去做你從未做過的事情 上篇文章我們說到rsync雖好,但是缺乏實時性,在實際應用中,咱們可以將rsync寫進腳本,然后寫進定時任務去備份,如果每天凌晨1:00…

青少年編程與數學 02-004 Go語言Web編程 16課題、并發編程

青少年編程與數學 02-004 Go語言Web編程 16課題、并發編程 一、并發編程并發編程的關鍵概念包括: 二、并發與并行并發編程(Concurrency)并行計算(Parallelism)區別 三、Go語言并發編程1. 協程(Goroutine&am…

均值聚類算法

K-均值聚類算法是一種常用的無監督學習算法,用于將數據集劃分為K個簇或聚類。它的基本思想是通過迭代將數據點分配到簇中,使得每個數據點都屬于最近的簇中心,并且使得簇內的數據點之間的距離最小化。 算法步驟如下: 1. 初始化K個…

wtforms+flask_sqlalchemy在flask-admin視圖下實現日期的修改與更新

背景: 在flask-admin 的modelview視圖下實現自定義視圖的表單修改/編輯是件不太那么容易的事情,特別是想不自定義前端view的情況下。 材料: wtformsflask_sqlalchemy 制作: 上代碼 1、模型代碼 from .exts import db from …

【AIGC-ChatGPT進階副業提示詞】末日生存指南 2.0:瘋狂科學家的荒誕智慧

引言 在這個不斷變化的世界中,末日似乎總是lurking在角落。但是,親愛的幸存者們,不要害怕!因為我,瘋狂科學家2099,正在這里為你們帶來最新版本的末日生存指南。這不是你祖母的應急手冊,而是一本…

BiLSTM:深度學習中的雙向長短期記憶網絡

目錄 ?編輯 1. BiLSTM原理 2. BiLSTM的應用案例 3. BiLSTM研究進展 4. BiLSTM技術挑戰 5. BiLSTM未來趨勢 6. BiLSTM的實際應用示例 6.1 數據準備 6.2 構建BiLSTM模型 6.3 訓練模型 6.4 評估模型 6.5 可視化訓練過程 7. 結論 在深度學習的浪潮中,BiLS…

Socket 收發內部拆包封包函數

在socket通信的時候,有時候數據比較大,內部緩存會溢出,導致發送或接收數據不正確。 針對這個情況,封裝了一個接收和發送的底層函數,根據緩存大小批次發送和接收,內部有自己的緩沖區,測試情況良…

RK3588 , mpp硬編碼yuv, 保存MP4視頻文件.

RK3588 , mpp硬編碼yuv, 保存MP4視頻文件. ?? 傳送 ?? Ubuntu x64 架構, 交叉編譯aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解碼轉RGBRk3588 FFmpeg 拉流 RTSP, 硬解碼轉RGBRK3588 , mpp硬編碼yuv, 保存MP4視頻文件.

powershell美化

powershell美化 寫在前面 除了安裝命令,其他都是測試命令,后續再寫進配置文件 安裝主題控件 安裝主題oh-my-posh,powershell中執行 winget install JanDeDobbeleer.OhMyPosh -s winget oh-my-posh init pwsh | Invoke-Expression # 查看…

2024/12/22周報

文章目錄 摘要Abstract深度學習文獻閱讀1. 背景與問題2. 發明目的3. 方法與實現3.1 數據采集與變量選取3.2 BP神經網絡建立穩態預測模型3.3 構建多目標優化函數3.4 多目標差分進化算法求解優化3.5 最優決策變量篩選3.6 實時控制 4. 系統實現5. 實際效果與驗證5.1 仿真驗證5.2 神…

前端編程訓練 異步編程篇 請求接口 vue與react中的異步

文章目錄 前言代碼執行順序的幾個關鍵點接口請求vue與react中的異步 vue中的異步react的state修改異步 前言 本文是B站三十的前端課的筆記前端編程訓練,異步編程篇 代碼執行順序的幾個關鍵點 我們可以理解為代碼就是一行一行,一句一句是執行(定義變…

Excel生成DBC腳本源文件

Excel制作 新建一個Excel,后綴為“.xls” 工作本名稱改為“CAN_Matrix” 在首行按照列來起名字,在里面只需要填寫必須的內容即可。 列數名稱第0列Message Name第1列Message Format第2列Message ID第3列Message Length (byte)第4列Message Transmitte…

16.2、網絡安全風險評估技術與攻擊

目錄 網絡安全風險評估技術方法與工具 網絡安全風險評估技術方法與工具 資產信息收集,可以通過調查表的形式把我們各類的資產信息進行一個統計和收集,掌握被評估對象的重要資產分布,進而分析這些資產關聯的業務面臨的安全威脅以及存在的安全…

C++-----函數與庫

數學中的函數與編程中的函數對比 數學中的函數 - 數學函數是一種映射關系,例如,函數\(y f(x)x^{2}\),對于每一個輸入值\(x\),都有唯一確定的輸出值\(y\)。它側重于描述變量之間的數量關系,通常通過公式來表示這種關系…

Loki 微服務模式組件介紹

目錄 一、簡介 二、架構圖 三、組件介紹 Distributor(分發器) Ingester(存儲器) Querier(查詢器) Query Frontend(查詢前端) Index Gateway(索引網關&#xff09…

C++ OpenGL學習筆記(1、Hello World空窗口程序)

終于抽出時間系統學習OpenGL 教程,同時也一步一步記錄怎樣利用openGL進行加速計算。 目錄 1、環境準備1.1、庫的下載1.2、庫的選擇及安裝 2、OpenGL第一個項目,Hello World!2.1、新建hello world控制臺項目2.2、配置openGL環境2.2.1 包含目錄配置2.2.2 …