JVM常見垃圾回收器

串行垃圾回收器

Serial和Serial Old串行垃圾回收器,是指使用單線程進行垃圾回收,堆內存較小,適合個人電腦

  • Serial作用于新生代,采用復制算法

  • Serial Old作用于老年代,采用標記-整理算法

垃圾回收時,只有一個線程在工作,并且java應用中的所有線程都要暫停(STW),等待垃圾回收完成

并行垃圾回收器

Parallel New 和 Parallel Old是一個并行垃圾回收器,JDK8默認使用此垃圾回收器

  • Parallel New作用于新生代,采用復制算法

  • Parallel Old作用于老年代,采用標記-整理算法

垃圾回收時,多個線程在工作,并且java應用中的所有線程都要暫停(STW),等待垃圾回收的完成

CMS(并發)垃圾回收器

CMS1一款并發的,使用標記-清除算法的垃圾回收器,該回收器是針對老年代垃圾回收的,是一款以獲取最短回收停頓時間為目標的收集器,停頓時間段,用戶體驗就好。其最大特點是在進行垃圾回收時,應用仍能正常運行。

G1(Garbage first)垃圾回收器

  • 應用于新生代和老年代,在JDK9之后默認使用G1

  • 劃分成多個區域,每個區域都可以充當Eden、survivor、old、humongous,其中humongous專為大對象設計

  • 采用復制算法(劃分多個區域就是為了采用復制算法)

  • 響應時間與吞吐量兼顧

  • 分成三個階段:新生代回收、并發標記、混合收集

  • 如果并發失敗(即回收速度趕不上創建新對象的速度),會出發Full GC

Young Collection

  • 初始化時,所有區域都處于空閑狀態

  • 創建了一些對象,挑出一些空閑區域作為伊甸園區存儲這些對象

  • 當伊甸園需要垃圾回收時,跳出一個空閑區域作為幸存區,用復制算法復制存活對象,需要暫停用戶線程

  • 隨著時間流逝,伊甸園的內存又有不足

  • 將伊甸園以及之前的幸存區中的存活對象,采用復制算法,復制到新的幸存區,其中較老對象晉升至老年代

YoungGC+Concurrent Mark(年輕代垃圾回收+并發標記)

  • 當老年代占用內存超過閾值(默認是45%)后,觸發并發標記,這時無需暫停用戶線程。

  • 并發標記之后,會有重新標記階段解決漏標問題,此時需要暫停用戶線程。(STW時間較短)

  • 重新標記完成后就知道老年代有哪些存活對象,隨后進入混合收集階段。此時不會對所有老年代區域進行回收,而是根據暫停時間目標優先回收價值高(存活對象少)的區域。(這就是Gabage First名稱的由來 垃圾多的區域優先)

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

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

相關文章

Windows 系統,TortoiseSVN 無法修改 Log 信息解決方法

使用SVN提交版本信息時,注釋內容寫的不全。通過右鍵TortoiseSVN的Show log看到提交的的注釋,右鍵看到Edit log message的選項,然而提交后卻給出錯誤提示: Repository has not been enabled to accept revision propchanges; ask …

linux如何刪除大文件的第一行(sed)

可以用sed命令實現&#xff1a; 刪除文檔的第一行 1. sed -i 1d <file>刪除文檔的最后一行 1. sed -i $d <file>在文檔指定行中增加一行 # 示例如下&#xff1a; echo "1"; echo "2"; echo "4"; echo "5"; # 想要在echo…

【PHP】php發送郵箱驗證碼格式美化,樣式美化

效果展示&#xff1a; 格式美化前 格式美化后 代碼 大多數框架都自帶有封裝好的發送email方法&#xff0c;就不多贅述&#xff0c;主要寫格式&#xff1a; <? php// 驗證碼過期時間 $expire 120; // 發件人郵箱 $from_email xx163.com; // 收件人 $to_email to163.com…

硬件產品經理常用的ChatGPT通用提示詞模板

產品策略&#xff1a;請幫助我制定一個硬件產品的產品策略。 市場調研&#xff1a;如何進行硬件產品的市場調研&#xff1f; 用戶需求&#xff1a;如何確定硬件產品的用戶需求&#xff1f; 產品設計&#xff1a;如何設計一個優秀的硬件產品&#xff1f; 用戶體驗&#xff1…

數據分析基礎之《matplotlib(5)—直方圖》

一、直方圖介紹 1、什么是直方圖 直方圖&#xff0c;形狀類似柱狀圖卻有著與柱狀圖完全不同的含義。直方圖牽涉統計學的概念&#xff0c;首先要對數據進行分組&#xff0c;然后統計每個分組內數據元的數量。在坐標系中&#xff0c;橫軸標出每個組的端點&#xff0c;縱軸表示頻…

無人機巡山護林,林業無人機智能助力綠色守護

隨著全球環保意識的不斷提高&#xff0c;無人機巡山護林已經成為解決森林巡檢難題的一種獨特而高效的方式。在我國&#xff0c;各地正積極探索無人機在森林防火、病蟲害監測以及生態調查等領域的創新應用。隨著無人機技術的不斷演進&#xff0c;其在推動森林保護和可持續發展方…

HTML實現每天單詞積累

注冊頁面 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>注冊</title><style>body {font-family: Arial, sans-serif;background-color: #f5f5f5;}form {max-width: 500px;margin: 50px auto;padding: 40px…

【Docker】進階之路:(九)Docker網絡

【Docker】從零開始&#xff1a;19.Docker網絡 Docker網絡模式簡介bridge網絡模式host網絡模式none網絡模式container網絡模式user-defined網絡模式1.創建自定義的bridge網絡2.使用自定義網絡 高級網絡配置docker network命令 為什么要了解容器的網絡模式? 首先&#xff0c;容…

spark 寫入 mysql 報錯

報錯信息如下&#xff1a; "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:D:\Hadoopruanjian\IDEA\IntelliJ IDEA 2021.3.2\lib\idea_rt.jar60971:D:\Hadoopruanjian\IDEA\IntelliJ IDEA 2021.3.2\bin" -Dfile.encodingUTF-8 -classpat…

工業級路由器在風力發電場的遠程監控技術

工業級路由器在風力發電場的遠程監控技術方面具有重要的應用意義。風力發電場通常由分布在廣闊地區的風力發電機組組成&#xff0c;需要進行實時監測、數據采集和遠程管理。工業級路由器作為網絡通信設備&#xff0c;能夠提供穩定可靠的網絡連接和多種遠程管理功能&#xff0c;…

深入探討Go語言協程調度:GRM模型解析與優化策略

一、線程調度 1、早期單線程操作系統 一切的軟件都是跑在操作系統上&#xff0c;真正用來干活&#xff08;計算&#xff09;的是 CPU早期的操作系統每個程序就是一個進程&#xff0c;直到一個程序運行完&#xff0c;才能進行下一個進程&#xff0c;就是“單進程時代”一切的程…

ES6中新增的基本數據類型----symbol

前言 Symbol 基本數據類型 獨一無二得值 Symbol函數創建 接收字符串 對symbol值得描述 let s1 Symbol(描述) /*** symbol 基本數據類型 表示獨一無二的值 Symbol函數創建獨一無二得值 參數可以是唯一值得描述*/ let sy1 Symbol();//創建好一個獨一無二得值 let sy2 Symbo…

EXP-00056: 遇到 ORACLE 錯誤 12154 ORA-12154: TNS: 無法解析指定的連接標識符

exp oas/oasoas filed:\daochu.dmp owner(s) 導出特定用戶 //exp 用戶名/密碼數據庫 filed:\daochu.dmp owner(用戶名) 1.重啟oracle監聽 cmd 中輸入 services.msc 找到服務&#xff1a;OracleOraDb10g_home1TNSListener 與 OracleServiceORCL。 把兩個服務啟動. 若未解決…

Vue 3 + Tailwind CSS:打造現代化項目的完美組合

Vue 3 Tailwind CSS&#xff1a;打造現代化項目的完美組合 本篇教程將向你介紹如何將 Tailwind CSS 與 Vue 3 項目搭配使用&#xff0c;為你的項目提供現代化的 UI 呈現和開發體驗。通過本文的逐步演示和示例代碼&#xff0c;你將很快掌握在 Vue 3 中集成和使用 Tailwind CSS…

SCI一區級 | Matlab實現GWO-CNN-BiLSTM-selfAttention多變量多步時間序列預測

SCI一區級 | Matlab實現GWO-CNN-BiLSTM-selfAttention多變量多步時間序列預測 目錄 SCI一區級 | Matlab實現GWO-CNN-BiLSTM-selfAttention多變量多步時間序列預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 1.Matlab實現GWO-CNN-BiLSTM-selfAttention灰狼算法優化卷…

IntelliJ idea卡頓解決,我遇到的比較管用的方案

Setttings> Build, Execution,Deployment>Debugger> Data Views> Java 取消 Enable "toString()" object view; Speed up debugging in IntelliJ Yesterday, I observed painfully slow debugging in IntelliJ. Every step over or step in took almost…

【力扣】234.回文鏈表2

234.回文鏈表2 感覺自己還是有點時間&#xff0c;然后又學了兩種解法。那就一起整理一下。 法一&#xff1a;反轉鏈表后比較 題解看我的這一篇就行&#xff08;click) 法二&#xff1a;數組雙指針 思路很簡單&#xff0c;就是用while循環遍歷一下整個鏈表將對應的值復制到…

2023年12月8日:UI登陸界面

作業 頭文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMovie> #include <QPushButton> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpub…

GO語言開始

GO語言開始 下載windows版本安裝后查看 是否安裝成功下載GO的集成開發工具第一個GO程序 Go官網地址&#xff1a;https://golang.org/ Go 官方鏡像站&#xff08;推薦&#xff09;:https://golang.google.cn/dl/ 下載windows版本 安裝后查看 是否安裝成功 下載GO的集成開發工具…

鴻蒙原生應用開發【分布式數據對象】

01、什么是分布式數據對象 在可信組網環境下&#xff0c;多個相互組網認證的設備將各自創建的對象加入同一個 sessionId&#xff0c;使得加入的多個數據對象之間可以同步數據&#xff0c;也就是說&#xff0c;當某一數據對象屬性發生變更時&#xff0c;其他數據對象會檢測到這…