教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

標記-清除算法(Mark-Sweep)的原理介紹和缺點

更新時間:2021年03月02日15時08分 來源:傳智教育 瀏覽次數(shù):

標記-清除算法(Mark-Sweep)是一種非?;A(chǔ)和常見的垃圾收集算法,簡單的說,它們找出所有不可達的對象,并將它們放入空閑列表Free,該算法被J.McCarthy等人在1960年提出并并應(yīng)用于Lisp語言。

標記-清除算法分為兩個階段,標注和清除。標記階段標記出所有需要回收的對象,清除階段回收被標記的對象所占用的空間。如圖

標記清除算法

從圖中我們就可以發(fā)現(xiàn),該算法最大的問題是內(nèi)存碎片化嚴重,后續(xù)可能發(fā)生大對象不能找到可利用空間的問題。

缺點

·效率不算高

·在進行GC的時候,需要停止整個應(yīng)用程序,導(dǎo)致用戶體驗差

·這種方式清理出來的空閑內(nèi)存是不連續(xù)的,產(chǎn)生內(nèi)存碎片。需要維護一個空閑列表。

猜你喜歡:

傳智教育Java基礎(chǔ)進階教程

JSP作用域有幾個?JSP作用域詳解

什么是線程安全?如何理解線程安全?

高級Java軟件開發(fā)工程師課程



下面是傳智教育公開的幾套Java課程,您可以下載和在線觀看學(xué)習(xí),如果想深入學(xué)習(xí)java并想找到不錯的java開發(fā)相關(guān)工作,建議報班學(xué)習(xí)傳智教育Java高級軟件工程師課程。獲取【Java視頻教程+資料】加播妞1605146928606_課程資料.jpg:435946716。



0 分享到:
和我們在線交談!