垃圾回收器CMS和G1的區別

CMS和G1的區別

區別一: 使用范圍不一樣

CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用 G1收集器收集范圍是老年代和新生代。不需要結合其他收集器使用

區別二: STW的時間

CMS收集器以最小的停頓時間為目標的收集器。

G1收集器可預測垃圾回收的停頓時間(建立可預測的停頓時間模型)

區別三: 垃圾碎片

CMS收集器是使用“標記-清除”算法進行的垃圾回收,容易產生內存碎片

G1收集器使用的是“標記-整理”算法,進行了空間整合,降低了內存空間碎片。

區別四: 垃圾回收的過程不一樣

CMS:初始標記、并發標記、重新標記、并發清理

G1:初始標記、并發標記、最終標記、篩選回收

初始標記階段:標記GC Roots 可以直接關聯的對象,會讓線程全部停止,也就是 Stop the World 狀態

并發標記階段:對所有的對象進行追蹤,這個階段最耗費時。但這個階段是和系統并發運行的,所以不會對系統運行造成影響

重新標記階段:由于第二階段是并發執行的,一邊標記垃圾對象,一邊創建新對象,老對象會變成垃圾對象。 所以第三階段也會進入 Stop the World 狀態,并且重新標記,標記的是第二階段中變動過的少數對象,所以運行速度很快

并發清理階段: 這個階段也是會耗費很多時間,但由于是并發運行的,所以對系統不會造成很大的影響

-----------------

篩選回收:對每個Region的回收成本進行排序,按照用戶自定義的回收時間來制定回收計劃

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

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

相關文章

C++11(下)

可變參數模板 C11的新特性可變參數模板能夠創建可以接受可變參數的函數模板和類模板. 相比C98/03, 類模版和函數模版中只能含固定數量的模版參數, 可變模版參數無疑是一個巨大的改進, 然而由于可變模版參數比較抽象, 使用起來需要一定的技巧, 所以這塊還是比較晦澀的.掌握一些基…

Vue 3項目的運行過程

概述: 使用Vite構建Vue 3項目后,當執行yarn dev命令啟動服務時,項目就會運行起來,該項目會通過src\main.js文件將src\App.vue組件渲染到index.html文件的指定區域。 文件介紹: src\App.vue文件 Vue 3項目是由各種組件…

遞歸實現指數型枚舉

title: 遞歸實現指數型枚舉 date: 2023-12-10 19:29:20 tags: 遞歸 catgories: 算法進階指南 —> 傳送門 題目大意 從 1 ~ n n n 這 n n n 個整數隨機選取任意多個,輸出所有可能的選擇方案 思路 這等價于每個整數可以選或者不選,所有的方案總數共有…

Spring Boot的日志

打印日志 打印日志的步驟: ? 在程序中得到日志對象. ? 使用日志對象輸出要打印的內容 在程序中得到日志對象 在程序中獲取日志對象需要使用日志工廠LoggerFactory,代碼如下: package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public c…

STM32——繼電器

繼電器工作原理 單片機供電 VCC GND 接單片機, VCC 需要接 3.3V , 5V 不行! 最大負載電路交流 250V/10A ,直流 30V/10A 引腳 IN 接收到 低電平 時,開關閉合。

Go Fyne 入門

Fyne是一個用于創建原生應用程序的UI工具包,它簡單易用,并且支持跨平臺。以下是一個簡單的Fyne教程,幫助你入門: 1. 安裝Fyne 首先,確保你已經安裝了Go語言。然后,在終端中運行以下命令來安裝Fyne&#x…

android-xml語法

xml解析器 Android的XML文件語法是由Android系統中的解析器解析的。具體來說,Android使用了一個名為"Android Asset Packaging Tool (AAPT)"的工具來解析和處理XML文件。AAPT負責將XML文件編譯為二進制格式,并在構建過程中將其打包到Android應…

第2節:Vue3 模板語法

Vue3 的模板語法主要包括以下幾個部分&#xff1a; 插值表達式&#xff1a;使用雙大括號 {{ }} 包裹變量&#xff0c;可以直接在模板中顯示變量的值。 <div>{{ message }}</div>指令&#xff1a;以 v- 開頭&#xff0c;后面跟一個自定義的名字&#xff0c;用于操…

從Centos-7升級到Centos-Stream-8

如果在正式環境升級&#xff0c;請做好數據備份以及重要配置備份&#xff01;因為升級會造一部分應用被卸載。 注意&#xff1a;升級前請備份好數據&#xff0c;升級可能會導致ssh的root用戶無法登陸、網卡名稱發生改變、引導丟失無法開機等問題。 1.安裝epel源 yum -y install…

【Spring教程20】Spring框架實戰:AOP(面對切面編程)知識總結

歡迎大家回到《Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0c;如果您對Maven還很陌生&#xff0c;請移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環境》&#xff0c;本文的上一篇為《利用 AOP通知獲取數據代碼…

軟件測試(接口測試業務場景測試)

軟件測試 手動測試 測試用例8大要素 編號用例名稱&#xff08;標題&#xff09;模塊優先級預制條件測試數據操作步驟預期結果 接口測試&#xff08;模擬http請求&#xff09; 接口用例設計 防止漏測方便分配工具&#xff0c;評估工作量和時間接口測試測試點 功能 單接口業…

華為OD機試真題-字符串變換最小字符串-2023年OD統一考試(C卷)

題目描述: 給定一個字符串s,最多只能進行一次變換,返回變換后能得到的最小字符串(按照字典序進行比較)。變換規則:交換字符串中任意兩個不同位置的字符。 輸入描述:一串小寫字母組成的字符串s 輸出描述:按照要求進行變換得到的最小字符串 補充說明:s是都是小寫字符組成…

一臺是阿里云,一臺是騰訊云,一臺是華為云,一臺是百度云等多種公有云混合安裝K8S集群

1. 修改主機名稱和添加hosts #永久修改主機名 hostnamectl set-hostname master && bash #在master01上操作&#xff0c;阿里云服務器 hostnamectl set-hostname worker1 && bash #在node01上操作&#xff0c;阿里騰訊云服務器 hostnamectl set-ho…

利用Microsoft Visual Studio Installer Projects打包安裝包

利用Microsoft Visual Studio Installer Projects打包安裝包 具體步驟步驟1&#xff1a;安裝擴展步驟2&#xff1a;創建 Setup 項目步驟3&#xff1a;設置屬性步驟4&#xff1a;添加輸出步驟5&#xff1a;添加文件步驟6&#xff1a;添加桌面快捷方式步驟7&#xff1a;添加菜單快…

【Table/SQL Api】Flink Table/SQL Api表轉流讀取MySQL

引入依賴 jdbc依賴 flink-connector-jdbc mysql-jdbc-driver 操作mysql數據庫 <!-- Flink-Connector-Jdbc --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc_${scala.binary.version}</artifactId>…

Ubuntu上安裝 Git

在 Ubuntu 上安裝 Git 可以通過包管理器 apt 進行。以下是在 Ubuntu 上安裝 Git 的步驟&#xff1a; 打開終端。你可以按 Ctrl Alt T 組合鍵來打開終端。 運行以下命令以確保你的系統的軟件包列表是最新的&#xff1a; sudo apt update 安裝 Git&#xff1a; sudo apt inst…

RT-DERT改進策略:AKConv即插即用,輕松漲點

摘要 提出了一種算法&#xff0c;用于生成任意尺寸卷積核的初始采樣坐標。與常規卷積核相比&#xff0c;提出的AKConv實現了不規則卷積核的函數來提取特征&#xff0c;為各種變化目標提供具有任意采樣形狀和尺寸的卷積核&#xff0c;彌補了常規卷積的不足。在COCO2017和VisDro…

Anaconda文件目錄(打開默認路徑)更改

Anaconda 文件默認目錄更改 每次打開 Anaconda 都在C盤怎么辦&#xff0c;如何改為D盤或是其他盤符位置&#xff1f; 可以進行下述操作。 1. 單次修改路徑 單次修改路徑&#xff1a;在 exe 文件(Anaconda Prompt (Anaconda_py))中寫入下面代碼&#xff1a; jupyter notebook …

STM32 標準外設SPL庫、硬件抽象層HAL庫、低層LL庫區別?

1、STM32 之一 HAL庫、標準外設庫、LL庫_ZCShou的博客-CSDN博客_ll庫&#xff08;仔細閱讀&#xff09; 2、STM32標準外設庫、 HAL庫、LL庫 - King先生 - 博客園 3、STM32 之 HAL庫_戈 揚的博客&#xff08;仔細閱讀&#xff09; 4、STM32 LL 為什么比 HAL 高效&#xff1…

MAC下加載動態庫

MAC引用動態庫時報錯&#xff1a; 查看一個可執行文件或者動態庫引用的第三方庫路徑&#xff1a;otool -L xxx.dylib 第一行是動態庫的安裝名稱&#xff08;INSTALL Name&#xff09;。當另一個客戶端鏈接到這個 dylib 時&#xff0c;dylib 的安裝 ID 會被復制到客戶端中作為…