床長人工智慧教程pdf下載——老生常談的GC垃圾回收,讓

2020-12-27 恆源劉麗商貿部

.

聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!

我們知道調優主要調的是垃圾收集器的選擇和參數的設置,所以我們對垃圾回收的知識必須要掌握了解,不然怎麼調優呢,那麼什麼是垃圾呢,我們類比生活中的垃圾,就是不要的東西,需要清除的東西,那麼第一步就是要找到垃圾,在中我們有兩種方式。

怎麼定義垃圾

引用計數法

給對象中添加一個引用計數器,每當有一個地方引用他時,計數器值就。

當引用失效時,計數器值就。

任何時刻計數器為的對象就是不可能在被使用,判斷為不可達,等待清理。

這個方法幾乎報廢,因為如果相互持有引用,導致永遠不能被回收,大家看下面這段代碼。

最後在看下就明白了,最後這個對象已經不可能再被訪問了,但由於他們相互引用著對方,導致它們的引用計數永遠都不會為,通過引用計數算法,也就永遠無法通知收集器回收它們。

這就導致了內存洩露,最後會導致內存溢出。

可達性分析

可達性分析算法的基本思路是,通過一些被稱為引用鏈的對象作為起點,從這些節點開始向下搜索,搜索走過的路徑被稱為,當一個對象到沒有任何引用鏈相連時即從節點到該節點不可達,則證明該對象是不可用的,如下所示。

在中,可作為對象的列表

虛擬機棧棧幀中的本地變量表中引用的對象

本地方法棧中既一般說的方法引用的對象。

方法區中類靜態屬性引用的對象

方法區中常量的引用對象。

類加載器

線程類

垃圾回收算法

在確定了哪些垃圾可以被回收後,垃圾收集器要做的事情就是開始進行垃圾回收,但是這裡面涉及到一個問題是如何高效地進行垃圾回收?這裡一共有三種算法。

標記清除

這是最基礎的垃圾回收算法,標記清除算法分為兩個階段標記階段和清除階段。

標記階段是標記出所有需要被回收的對象,清除階段就是回收被標記的對象所佔用的空間。

缺點

位置不連續,產生碎片

效率偏低,兩遍掃描,標記和清除都比較耗時

複製算法

為了解決算法的缺陷,算法就被提了出來。

它將可用內存按容量劃分為大小相等的兩塊,每次只使用其中的一塊。

當這一塊的內存用完了,就將還存活著的對象複製到另外一塊上面,然後再把已使用的內存空間一次清理掉,這樣一來就不容易出現內存碎片的問題。

優點沒有碎片,空間連續

缺點導致的內存空間始終空閒浪費!

標記整理

為了解決算法的缺陷,充分利用內存空間,提出了算法。

該算法標記階段和一樣,但是在完成標記之後,它不是直接清理可回收對象,而是將存活對象都向一端移動,然後清理掉端邊界以外的內存。

優點沒有碎片,空間連續

缺點效率偏低,兩遍掃描,指針需要調整

分代收集算法

分代收集算法嚴格來說並不是一種思想或理論,而是融合上述種基礎的算法思想,而產生的針對不同情況所採用不同算法的一套組合拳。

我們知道大多數對象都是朝生夕死的,所以我們把堆分為了新生代老年代,以及永生代裡面叫做元空間,方便他們按照不同的代進行不同的垃圾回收。

新生代又被進一步劃分為伊甸園和倖存者區,他們的比例是。

下面我用解來演示一下分代垃圾收集過程

第一步新分配的對象會放在伊甸園,伊甸園滿了就會觸發,會清除包括,在內所有年輕代裡面不用的垃圾。

第二步伊甸園裡面沒有被清除的對象就是倖存下來的,將他們年齡,放到區

第三步伊甸園裡面滿了以後再次觸發,伊甸園倖存的對象年齡放到區,區倖存的對象年齡放到區,這樣區就空出來了

第四步如此反覆

第五步倖存者區達到年齡後,進入到老年代,默認是歲裡默認是歲,這個年齡是可以自己調的

第六步如果老年代內存滿了,就會觸發或者。

觸發就會出現所謂的現象。

內存越大,的時間也越長,所以內存也不僅僅是越大越好。

看了上面的解後我們知道,年輕代用的是複製算法,因為對象大多數生命周期短,回收非常頻繁,用複製算法效率高而老年代用的是標記清除或標記整理算法,因為在老年代對象存活時間比較長,複製來複製去沒必要。

垃圾收集器

垃圾收集器是垃圾回收算法的具體實現,說白了就是落地,我們介紹下面幾個常用的收集器。

收集器是最基本最古老的收集器,它是一個單線程收集器,並且在它進行垃圾收集時,必須暫停所有用戶線程,會。

收集器是針對新生代的收集器,採用的是算法。

收集器是針對老年代的收集器,採用的是算法。

它的優點是實現簡單高效,但是缺點是會給用戶帶來停頓。

參數控制

收集器其實就是收集器的多線程版本,多線程並行進行垃圾收集。

在多核時,比效率高,在單核時和是差不多的。

作用在新生代,使用複製算法,配合使用。

參數控制

收集器是一個新生代的多線程收集器。

他也是並行收集,看上去和一樣,但是更關注系統的吞吐量,其採用的是算法。

是收集器的老年代版本,也是並行收集器,使用多線程和算法,也是更加關注吞吐量。

參數控制

收集器是一種以獲取最短回收停頓時間為目標的收集器,它是一種並發收集器,採用的是算法。

小夥伴注意了並行指的是垃圾回收線程之間並行執行,並發指的是用戶線程和垃圾回收線程一起執行。

它的運作過程相對於前面幾種收集器來說要更複雜一些,整個過程分為個步驟,包括

初始標記

並發標記

重新標記

並發清除

其中初始標記重新標記這兩個步驟仍然需要。

初始標記僅僅只是標記一下能直接關聯到的對象,速度很快,並發標記階段就是進行的過程,而重新標記階段則是為了修正並發標記期間,因用戶程序繼續運作而導致標記產生變動的那一部分對象的標記記錄,這個階段的停頓時間一般會比初始標記階段稍長一些,但遠比並發標記的時間短。

由於整個過程中耗時最長的並發標記和並發清除過程中,收集器線程都可以與用戶線程一起工作,所以總體上來說,收集器的內存回收過程是與用戶線程一起並發地執行。

參數控制

收集器是當今收集器技術發展最前沿的成果,它是一款面向服務端應用的收集器,它能充分利用多多核環境。

因此它是一款並行與並發收集器,並且它可以設置停頓時間。

與收集器相比收集器有以下特點

空間整合,收集器採用標記整理算法,不會產生內存空間碎片。

分配大對象時不會因為無法找到連續空間而提前觸發下一次。

可預測停頓,這是的另一大優勢,降低停頓時間是和的共同關注點,但除了追求低停頓外,還能建立可預測的停頓時間模型,能讓使用者明確指定在一個長度為毫秒。。。

相關焦點

  • 床長人工智慧教程50免費pdf下載——數據挖掘入門實驗二
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!實驗基於的數據挖掘程序設計,學號姓名專業,計算機,班級實驗目標,在掌握基於工具的數據挖掘分類回歸聚類關聯規則分析應用的基礎上,實現基於的數據挖掘程序設計。
  • 床長人工智慧教程pdf下載網校——ARouter路由框架
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!路由框架實現登錄攔截,以及注意點當前項目在做模塊化組件化的開發實踐,這其中就少不了路由框架的使用。
  • 床長人工智慧教程pdf下載——Tomcat原理系列之六
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
  • 床長人工智慧教程50免費pdf文檔——Golang精編1
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!【初級】指針是基礎類型參考答案【初級】是可以指向任意對象的類型參考答案【中級】下面關於文件操作的代碼可能觸發異常參考答案【初級】不支持自動垃圾回收
  • 床長人工智慧教程50免費pdf下載——Single Im
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!論文連結的觀察報告大多數戶外無霧像的像塊中,至少有一個通道的顏色亮度非常低,甚至接近於。這個先驗知識叫做暗通道先驗。
  • 床長人工智慧教程50免費pdf下載——Javascrip
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
  • 床長人工智慧教程pdf下載——重新學習並發-Java線程
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!終止狀態,表示當前線程已經執行完畢線程狀態轉換入如下所示線程線程是一種支持型線程,主要用作程序中後臺調度以及支持性工作,當一個程序中不存在非線程時,虛擬機會退出,可以通過將線程設置為線程在後臺默默地完成一些系統性的服務,比如垃圾回收線程等
  • 床長人工智慧教程pdf下載網校——Mapreduce的排
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
  • 床長人工智慧教程50免費pdf下載——FreeMarke
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!首先給大家簡單介紹一下。是一個用語言編寫的模板引擎,它基於模板來生成文本輸出。與容器無關,即在運行時,它並不知道或。
  • 床長人工智慧教程pdf下載網校——Python爬蟲實戰八
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!更新其實本文的初衷是為了獲取淘寶的非匿名旺旺,在淘寶詳情頁的最下方有相關評論,含有非匿名旺旺號。
  • 床長人工智慧教程pdf下載——IGMP基礎
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!簡介是的簡稱,又被稱為網際網路組管理協議,是協議族中負責組播成員管理的協議。
  • 床長人工智慧教程50免費pdf下載——毫秒級檢測 你見過
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!黑體,上海站|高性能計算之培訓月日三天密集式學習快速帶你晉級閱讀全文正文共個字,張,預計閱讀時間分鐘。
  • 床長人工智慧教程pdf下載——全國一二線城市各大網際網路
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!一直以來,陸陸續續總有小夥伴們想了解去哪些城市有哪些對應公司可供選擇的話題。今天特地整理了一份一二線城市知名的網際網路或者說相關公司名單供參考。
  • 床長人工智慧教程50免費pdf下載——Android性能
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧教程的收費文章。尊重版權,支持原創!這是性能優化典範第季的課程學習筆記,拖拖拉拉很久,記錄分享給大家,請多多包涵擔待指正!文章共有個段落,涉及的內容有多線程並發的性能問題,介紹了與分別適合的使用場景以及各自的使用注意事項。
  • 床長人工智慧教程50免費pdf下載——成功入坑-利用P
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧教程的收費文章。尊重版權,支持原創!開始之前說點課題話,不得不說我非常喜歡老外設計書的封面,非常有意思,你有沒有覺得呢。
  • 床長人工智慧教程50免費pdf下載——C++ 基礎入門
    聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
  • 床長人工智慧教程pdf下載——秋招總結 二 -計算機網絡
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
  • 床長人工智慧教程——Network 對象
    註:本人只是分享一些床長的免費雜文而已,並非床長的收費文章。這個程序識別手寫數字的效果怎麼樣呢? 好,讓我們從加載MNIST數據開始。來做這件事, 我們將在python shell中運行下面的指令,>>>importmnist_loader>>>training_data,validation_data,test_data= \...mnist_loader.load_data_wrapper()當然,這也可以通過一個獨立的python程序來完成,不過如果你一直在跟著這個教程走
  • 床長人工智慧教程pdf下載——2020年的六種程式語言排
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!前言前言程式語言是開發的基礎。有不同的類型和特徵,並且開發人員針對不同的場景選擇正確的語言,但是您知道使用哪種語言嗎?
  • 床長人工智慧教程免費pdf文檔50——printf格式控
    聲明:本人只是分享一些床長人工智慧教程相關的免費pdf文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!格式控制符的完整格式的格式控制的完整格式或格式字符下面對組成格式說明的各項加以說明①表示格式說明的起始符號,不可缺少。②有表示左對齊輸出,如省略表示右對齊輸出。③有表示指定空位填,如省略表示指定空位不填。