jdk8 G1收集器怎么手動調優

在 JDK 8 中,手動調優 G1 垃圾收集器可以通過以下步驟和參數進行:

1. 啟用 G1 垃圾收集器

要啟用 G1 垃圾收集器,需要在 JVM 啟動參數中添加以下選項:

-XX:+UseG1GC

這個參數告訴 JVM 使用 G1 作為垃圾收集器。

2. 設置堆內存大小

合理設置堆內存的初始大小和最大大小,可以使用以下參數:

-Xms4g -Xmx4g

這將設置初始堆大小和最大堆大小均為 4GB。

3. 設置最大 GC 暫停時間

G1 收集器的一個重要特點是低暫停時間,可以通過以下參數設置期望的最大 GC 暫停時間:

-XX:MaxGCPauseMillis=200

這個參數設置 G1 收集器在進行垃圾回收時,盡量將暫停時間控制在 200 毫秒以內。

4. 設置堆使用率閾值

G1 收集器會在堆使用率達到一定閾值時開始垃圾回收,可以通過以下參數設置這個閾值:

-XX:InitiatingHeapOccupancyPercent=45

這個參數表示當堆使用率達到 45% 時,G1 收集器會開始并發標記周期。

5. 設置 Region 大小

G1 收集器將堆內存劃分為多個 Region,可以通過以下參數設置每個 Region 的大小:

-XX:G1HeapRegionSize=32m

這個參數設置每個 Region 的大小為 32MB。

6. 設置并發標記線程數

G1 收集器在并發標記階段使用的線程數可以通過以下參數設置:

-XX:ConcGCThreads=4

這個參數設置并發標記線程數為 4。

7. 設置并行回收線程數

G1 收集器在并行回收階段使用的線程數可以通過以下參數設置:

-XX:ParallelGCThreads=8

這個參數設置并行回收線程數為 8。

8. 其他常用參數

  • 禁用顯式 GC 調用:可以通過以下參數禁用 System.gc() 的顯式調用,避免可能的性能問題:

    -XX:+DisableExplicitGC
  • 啟用字符串去重:可以通過以下參數啟用 JVM 的字符串去重功能,減少堆內存的占用:

    -XX:+UseStringDeduplication

示例配置

以下是一個完整的示例配置,適用于一個具有 8 核心和 32GB 內存的機器:

java -XX:+UseG1GC -Xms16g -Xmx16g -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1HeapRegionSize=32m -XX:ConcGCThreads=4 -XX:ParallelGCThreads=8 -XX:+UseStringDeduplication -XX:+DisableExplicitGC -jar your-application.jar

監控和調優

  • 使用監控工具:可以使用 jstatjmapjconsole 等工具監控 G1 收集器的性能。

  • 分析 GC 日志:可以通過以下參數啟用 GC 日志記錄,并分析日志以發現性能瓶頸:

    -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/yourapp-gc.log

通過以上步驟和參數,可以在 JDK 8 中手動調優 G1 垃圾收集器,以滿足應用的性能需求。

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

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

相關文章

Nginx通過設置自定義標記識別代理調用

Nginx通過設置自定義標記識別代理調用 業務場景 最近遇到一個業務場景,部署在云端服務器的一個平臺,接口提供給多個現場調用,其中一個現場是通過nginx代理服務器代理轉發到云服務器,另外一個現場則是直接通過云服務器接口進行調…

前端知識速記:POST和GET

前端知識速記:POST和GET請求的區別 一、GET請求概述 GET請求是一種用于獲取服務器資源的請求方式。**使用GET請求時,數據通過URL傳遞,適合用于獲取數據而不修改資源。**以下是GET請求的一些基本特征: 數據附在URL后面&#xff…

axios如何利用promise無痛刷新token

目錄 需求 需求解析 實現思路 方法一: 方法二: 兩種方法對比 實現 封裝axios基本骨架 instance.interceptors.response.use攔截實現 問題和優化 如何防止多次刷新token 同時發起兩個或以上的請求時,其他接口如何重試 最后完整代…

【DeepSeek系列】01 DeepSeek-V1 快速入門

1、DeepSeek簡介 2024年底,DeepSeek 相繼推出了其第一代推理大模型:DeepSeek-R1-Zero 和 DeepSeek-R1。 DeepSeek-R1-Zero 是一個通過大規模強化學習(RL)訓練的模型,訓練過程中沒有使用監督微調(SFT&…

基于LabVIEW的Modbus-RTU設備通信失敗問題分析與解決

在使用 LabVIEW 通過 Modbus-RTU 協議與工業設備進行通信時,可能遇到無法正常發送或接收指令的問題。常見原因包括協議參數配置錯誤、硬件連接問題、數據幀格式不正確等。本文以某 RGBW 控制器調光失敗為例,提出了一種通用的排查思路,幫助開發…

【初/高中生講機器學習】0. 本專欄 “食用” 指南——寫在一周年之際?

創建時間:2025-01-27 首發時間:2025-01-29 最后編輯時間:2025-01-29 作者:Geeker_LStar 你好呀~這里是 Geeker_LStar 的人工智能學習專欄,很高興遇見你~ 我是 Geeker_LStar,一名高一學生,熱愛計…

密云生活的初體驗

【】在《歲末隨筆之碎碎念》里,我通告了自己搬新家的事情。乙巳年開始,我慢慢與大家分享自己買房裝修以及在新家的居住體驗等情況。 跳過買房裝修的內容,今天先說說這三個月的生活體驗。 【白河】 潮白河是海河水系五大河之一,貫穿…

系統通解:超多視角理解

在科學研究和工程應用中,我們常常面臨各種復雜系統,需要精確描述其行為和變化規律。從物理世界的運動現象,到化學反應的進程,再到材料在受力時的響應,這些系統的行為往往由一系列數學方程來刻畫。通解,正是…

Python爬蟲:1藥城店鋪爬蟲(完整代碼)

??????????歡迎來到我的博客?????????? 🐴作者:秋無之地 🐴簡介:CSDN爬蟲、后端、大數據領域創作者。目前從事python爬蟲、后端和大數據等相關工作,主要擅長領域有:爬蟲、后端、大數據…

openwebui入門

1 簡介 ?Open WebUI?(網址是openwebui.com)是一個高度可擴展、功能強大且用戶友好的自托管Web用戶界面,專為完全離線操作設計,編程語言是python。它支持對接Ollama和OpenAI兼容的API的大模型。? Open WebUI?在架構上是一種中…

Day36-【13003】短文,數組的行主序方式,矩陣的壓縮存儲,對稱、三角、稀疏矩陣和三元組線性表,廣義表求長度、深度、表頭、表尾等

文章目錄 本次課程內容第四章 數組、廣義表和串第一節 數組及廣義表數組的基本操作數組的順序存儲方式-借用矩陣行列式概念二維數組C語言對應的函數-通常行主序方式 矩陣的壓縮存儲對稱矩陣和三角矩陣壓縮存儲后,采用不同的映射函數稀疏矩陣-可以構成三元組線性表三…

Android原生開發入門

1. 資源地址 Android官方教程Android參考手冊 2. 必看基礎模塊 應用基礎知識View 綁定 :綁定相當于Qt中的ui文件生成界面代碼的機制,Qt中的ucc會自動將ui文件編譯成ui_xxxx.h文件,Android開發中也一樣。 Android中自動生成的代碼在&#x…

3-Not_only_base/2018網鼎杯

3-Not_only_base 打開code MCJIJSGKPZZYXZXRMUW3YZG3ZZG3HQHCUS 分析: 首先看題知道解密過程中肯定有base解密。 知識點1: Base64字符集: 包含大小寫字母(A-Z、a-z)、數字(0-9)以及兩個特殊字…

deepseek、qwen等多種模型本地化部署

想要在本地部署deepseek、qwen等模型其實很簡單,快跟著小編一起部署吧 1 環境搭建 1.1下載安裝環境 首先我們需要搭建一個環境ollama,下載地址如下 :Ollama 點擊Download 根據自己電腦的系統選擇對應版本下載即可 1.2 安裝環境(window為例) 可以直接點擊安裝包進行安…

02/06 軟件設計模式

目錄 一.創建型模式 抽象工廠 Abstract Factory 構建器 Builder 工廠方法 Factory Method 原型 Prototype 單例模式 Singleton 二.結構型模式 適配器模式 Adapter 橋接模式 Bridge 組合模式 Composite 裝飾者模式 Decorator 外觀模式 Facade 享元模式 Flyw…

Idea ? Maven 選項

Idea ? Maven 選項 1. 在 Idea 項?上右鍵2. 選中 Maven 選項 如果在創建 Spring/Spring Boot 項?時,Idea 右側沒有 Maven 選項,如下圖所示: 此時可以使?以下?式解決。 1. 在 Idea 項?上右鍵 2. 選中 Maven 選項 選中 Maven 之后&#…

企業百科和品牌百科創建技巧

很多人比較困惑,創建百科詞條需要注意哪些事情?為什么參考提交了權威新聞參考資料還是沒有通過,下面小馬識途營銷顧問就為大家解答疑惑: 1、品牌詞以及企業詞提交 1)如果沒有詞條,我們可以通過平臺提供的急…

用Deepseek做EXCLE文件對比

背景是我想對比兩個PO系統里的一個消息映射,EDI接口的mapping有多復雜懂的都懂,它還不支持跨系統版本對比,所以我費半天勁裝NWDS,導出MM到excle,然后問題來了,我需要對比兩個excel文件里的內容,…

Agent開發注意事項

這里寫自定義目錄標題 llm應用開發什么是Agent?Agent1:工作流Agent2:自主AgentLLM如何擁有自主規劃能力? Tool 參考: llm應用開發 llm工程師需要具備以下能力: [] 軟件工程技能:將各個組件組裝在一起 [] 算法能力&am…

OpenCV:圖像輪廓

目錄 簡述 1. 什么是圖像輪廓? 2. 查找圖像輪廓 2.1 接口定義 2.2 參數說明 2.3 代碼示例 2.4 運行結果 3. 繪制圖像輪廓 3.1 接口定義 3.2 參數說明 3.3 代碼示例 3.4 運行結果 4. 計算輪廓周長 5. 計算輪廓面積 6. 示例:計算圖像輪廓的面…