教你認(rèn)識(shí)各種Java垃圾回收器的標(biāo)準(zhǔn)對(duì)比 |
現(xiàn)在已經(jīng)是2015年了,但對(duì)于大多數(shù)Java開(kāi)發(fā)人員來(lái)說(shuō),有兩件事情是仍然是個(gè)謎 - 垃圾收集和異性(養(yǎng)殖場(chǎng)被人嘲笑)。因?yàn)槲也皇翘貏e理解java開(kāi)發(fā)的后者,我想我會(huì)試著說(shuō)說(shuō)前杠,特別是與Java 8的來(lái)臨,這個(gè)地區(qū)發(fā)生了許多變化顯著和升級(jí),最重要的是持久代(的PermGen)刪除以及一些令人興奮的新的優(yōu)化(后面將繼續(xù)引用這些)。
java開(kāi)發(fā)_教你認(rèn)識(shí)各種Java垃圾回收器的標(biāo)準(zhǔn)對(duì)比
說(shuō)到垃圾收集,并且很多人都知道它的概念,但也有在日常的程序應(yīng)用。盡管如此,還是有很多事情我們不明白,這是悲慘的。 JVM它**的誤解就是認(rèn)為只有一個(gè)垃圾收集器,而且它有四個(gè)不同收藏家的事實(shí),每個(gè)人都有自己的長(zhǎng)度。 JVM不會(huì)自動(dòng)選擇一個(gè),這件事情你必須要落在我的肩上,因?yàn)椴煌氖詹丶視?huì)帶來(lái)顯著差異吞吐量和應(yīng)用程序的暫停時(shí)間。
在常見(jiàn)的這四個(gè)收集算法是,它們代,它們將承載堆劃分成幾個(gè)區(qū)域,假設(shè)許多堆對(duì)象的生命周期的很短,它可以快速地進(jìn)行恢復(fù)出來(lái)。演示片有很多內(nèi)容,所以在這里我要直接談?wù)撨@些不同的算法,以及他們的長(zhǎng)處和短處。
1.串行收集器
串行回收利用是一個(gè)最簡(jiǎn)單的,你會(huì)不會(huì)考慮它,因?yàn)樗饕轻槍?duì)單線(xiàn)程環(huán)境(例如32或Windows)和相對(duì)小堆。恢復(fù)時(shí)間將工作線(xiàn)程都將凍結(jié)的所有應(yīng)用程序,就這一點(diǎn)使得它無(wú)法將使用由服務(wù)器應(yīng)用程序。
如何使用它:你可以打開(kāi)-XX:+ UseSeRIAlGC此JVM參數(shù)來(lái)使用它。
2.并行/吞吐量收集
接下來(lái)是并行收集器(并行收集器)。這是默認(rèn)的JVM收集器。正如它的名字一樣,它的**優(yōu)點(diǎn)是,它使用多線(xiàn)程掃描和壓縮堆。它的缺點(diǎn)是,不管該未成年GC的執(zhí)行或完全GC,將暫停應(yīng)用程序線(xiàn)程。并行恢復(fù)是最適合這些應(yīng)用程序可以容忍的停頓,它試圖減少因收集的CPU開(kāi)銷(xiāo)。
3.CMS收藏家
并行收集后是一個(gè)收藏家的CMS(并發(fā)標(biāo)記 - **)。這個(gè)算法使用java多線(xiàn)程(并發(fā))掃描堆和標(biāo)記(標(biāo)記),可以回收不再使用(掃描)物體。 (這些對(duì)象老一代的線(xiàn)程的入口點(diǎn)或靜態(tài)變量的訪(fǎng)問(wèn))當(dāng)初始標(biāo)記時(shí),根對(duì)象當(dāng)這個(gè)算法并行運(yùn)行:在這兩種情況下,這種算法將進(jìn)入“阻止世界”的模式。當(dāng)一個(gè)應(yīng)用程序更改堆的狀態(tài),使它不得不回頭重新確認(rèn)自己的標(biāo)志都是正確的對(duì)象。
這樣做的**的問(wèn)題是收藏家會(huì)遇到晉升失敗,這是指競(jìng)爭(zhēng)條件的出現(xiàn)和新的一代老一代的恢復(fù)。如果收集需要被提升到舊的目標(biāo)的年輕一代,但此時(shí)的老一代沒(méi)有多余的空間,它只能進(jìn)行一次STW(停止World)的完整的GC - 而這種情況是CMS是可取的避免。為了確保這種情況不會(huì)發(fā)生,你要么是增加老一代的大小(或增加整個(gè)堆的大小),或者被分配到一些后臺(tái)線(xiàn)程的恢復(fù),使得對(duì)象分配的速度比賽。
該算法的另一缺點(diǎn)是相對(duì)于和平行集電極,CPU資源它使用會(huì)更多,它使用多個(gè)線(xiàn)程來(lái)執(zhí)行掃描和恢復(fù),以便讓?xiě)?yīng)用程序繼續(xù)提供吞吐量更高的水平。對(duì)于大多數(shù)長(zhǎng)期運(yùn)行過(guò)程中,暫停的應(yīng)用是很不利的他們來(lái)說(shuō),這時(shí)候要考慮使用CMS收集器。然而,這種算法不是默認(rèn)啟用的。你必須指定-XX:+ UseConcMarkSweepGC來(lái)啟用它。假設(shè)你的籌碼小于4G,并且要分配更多的CPU資源,避免了應(yīng)用程序停頓,那么這就是你要選擇一個(gè)收藏家的東西。但是,如果堆棧大于4G,您可能更愿意使用這**--G1收集器。
4.G1收藏家
G1(**垃圾)收集器最早是在JDK 7update 4,其目的是不是堆4GB,以更好地支持更多的介紹。 G1收集堆成多個(gè)區(qū)域,大小不等,從1MB到32MB,并使用多個(gè)后臺(tái)線(xiàn)程進(jìn)行掃描。 G1收集器將優(yōu)先考慮那些最包含垃圾回收的掃描區(qū)域,這是它的名字(垃圾**)的由來(lái)。這種恢復(fù)可以通過(guò)-XX:?jiǎn)⒂肬seG1GC大關(guān)。
這種策略減少了后臺(tái)線(xiàn)程掃描可能性無(wú)用對(duì)象堆前未完成已被耗盡,情況收集器將不得不暫停該應(yīng)用程序,這將導(dǎo)致污水處理廠(chǎng)恢復(fù)。另一個(gè)好處是,它總是G1堆壓縮,而CMS采集器只有在完整的GC將做到這一點(diǎn)。
在過(guò)去的幾年里,一直是爭(zhēng)論的滿(mǎn)場(chǎng)樁,很多開(kāi)發(fā)商從一臺(tái)機(jī)器模特出身的單個(gè)JVM JVM單機(jī)多微的服務(wù),基于組件的架構(gòu)。這是由許多因素,包括組件分離步驟,簡(jiǎn)化了部署驅(qū)動(dòng)時(shí),重新加載應(yīng)用程序的類(lèi),以避免產(chǎn)生存儲(chǔ)器的開(kāi)銷(xiāo)(在這方面的Java 8已改善)。
然而,最重要的是這樣做的,希望避免“阻止世界”在長(zhǎng)期堆GC暫停(它需要一個(gè)大的回升,幾秒鐘即可完成)。這樣的容器,如碼頭工人技術(shù)加速了這一進(jìn)程,使您可以輕松地部署在同一臺(tái)物理計(jì)算機(jī)上的多個(gè)應(yīng)用程序。
Java的8 G1收藏家
Java的8更新引入了很大的優(yōu)化G1收集20串重量(字符串重復(fù)數(shù)據(jù)刪除)。因?yàn)樽址òㄆ鋬?nèi)部的char []數(shù)組)占據(jù)了大部分的堆空間的,這個(gè)新的優(yōu)化旨在使G1集電極可以識(shí)別那些重復(fù)串堆和它們指向的相同的內(nèi)部的字符[]數(shù)組中,為了避免相同的字符串的多個(gè)拷貝作為**利用堆將變低。您可以使用-XX:+ UseStringDeduplication此JVM參數(shù)來(lái)試試這個(gè)功能。
Java的8和**代
Java開(kāi)發(fā)的8**的變化是取消了**的一代,這原本是用來(lái)類(lèi)的元數(shù)據(jù),居民字符串,靜態(tài)變量分配空間。而以前需要開(kāi)發(fā)針對(duì)那些應(yīng)用程序?qū)⒓虞d很多類(lèi)的具體優(yōu)化和調(diào)整堆的比例。這是真正的許多年,這是許多內(nèi)存不足異常的根本原因,因此JVM接手這真的再好不過(guò)了。即便如此,也不會(huì)自行降低發(fā)展商申請(qǐng)去耦,以不同的JVM的可能性。學(xué)習(xí)更多相關(guān)資訊或視頻教程歡迎進(jìn)入課課家教育查詢(xún)?cè)斍椋篽ttp://www.kokojia.com/
資訊來(lái)源:http://www.kokojia.com/article/5185.html
|
友情提示:
信息由用戶(hù)自行發(fā)布,如果發(fā)現(xiàn)錯(cuò)誤或不符合法規(guī)或造成侵權(quán),請(qǐng)及時(shí)通知本站更正或刪除,具體聯(lián)系方式見(jiàn)頁(yè)面底部聯(lián)系我們,謝謝。 |
當(dāng)前頁(yè)在本站[名站在線(xiàn)]7天內(nèi)點(diǎn)擊次數(shù)(點(diǎn)擊次數(shù)為零的日期不顯示): |
信息評(píng)估: |
(還沒(méi)有網(wǎng)友對(duì)該信息作出評(píng)估,你想為該信息提供第一個(gè)評(píng)估嗎?) |
廣東汕頭龍門(mén)吊銷(xiāo)售廠(chǎng)家型號(hào)最全廣東汕頭龍門(mén)吊銷(xiāo)售廠(chǎng)家|廣東汕頭行車(chē)行吊銷(xiāo)售廠(chǎng)家|廣東汕頭門(mén)式起重機(jī)銷(xiāo)售廠(chǎng)家--中原總廠(chǎng)15516179631
廣東汕頭龍門(mén)吊銷(xiāo)售廠(chǎng)家價(jià)格優(yōu)惠、型號(hào)齊全、質(zhì)量可靠、方便調(diào)劑,公司是一家集研發(fā)、制造、銷(xiāo)售于一體的現(xiàn)代化企業(yè),是專(zhuān)業(yè)的龍門(mén)吊廠(chǎng)家、架橋機(jī)廠(chǎng)家。供應(yīng)龍門(mén)吊出租、龍門(mén)吊銷(xiāo)售、架橋機(jī)租賃、架橋機(jī)銷(xiāo)售。主營(yíng)電動(dòng)葫蘆、單雙梁橋式、門(mén)式起重機(jī)、架橋機(jī)、提梁機(jī)、造船龍門(mén)吊、行車(chē)行吊、運(yùn)梁車(chē)等。它是使用范圍最廣、數(shù)量最...布線(xiàn)是門(mén)技術(shù)活,線(xiàn)纜標(biāo)簽也是藝術(shù)標(biāo)簽是數(shù)據(jù)機(jī)房布線(xiàn)系統(tǒng)管理的基礎(chǔ),也是數(shù)據(jù)中心的基本要素。良好的標(biāo)簽在為擁有者增加附加價(jià)值、提高美觀(guān)度的同時(shí),還可使工作更加**、靈活和可靠。如果說(shuō)布線(xiàn)是門(mén)技術(shù)活,那么線(xiàn)纜標(biāo)簽就是門(mén)藝術(shù),下面一起看看布線(xiàn)標(biāo)簽標(biāo)識(shí)技術(shù)。布線(xiàn)標(biāo)簽標(biāo)識(shí)系統(tǒng)的實(shí)施為今后的維護(hù)和管理帶來(lái)了**的便利,提高其管理水平和工作效率,減少了網(wǎng)絡(luò)配置時(shí)間。
線(xiàn)纜標(biāo)簽的基本要求所有需要標(biāo)識(shí)的設(shè)施都要有布線(xiàn)標(biāo)簽,每一電纜、光纜、配線(xiàn)設(shè)備、...綜合布線(xiàn)機(jī)柜里面布線(xiàn)的一些技巧隨著布線(xiàn)水平的提高,布線(xiàn)系統(tǒng)的工程商已經(jīng)通過(guò)施工工藝及層層把關(guān),有把握到達(dá)每根線(xiàn)都可以或許通過(guò)功能測(cè)試。這時(shí),人們的注意力就轉(zhuǎn)向了美觀(guān)。
憑據(jù)國(guó)標(biāo),垂直橋架內(nèi)的線(xiàn)纜每隔1.5米應(yīng)綁扎一次防止線(xiàn)纜應(yīng)重量孕育發(fā)生拉力造成線(xiàn)纜變形,對(duì)水平橋架內(nèi)并沒(méi)有要求。而終端面板、機(jī)柜、配線(xiàn)架、配線(xiàn)箱按照尺度必須做到兩底角平行,因此布線(xiàn)系統(tǒng)的美觀(guān)就主要集中在機(jī)房?jī)?nèi)的線(xiàn)纜部分。
機(jī)柜好比DIY裝機(jī)的機(jī)箱,其作用可說(shuō)是大致一樣,...在五常市創(chuàng)業(yè)大型洗衣店需要投資多少錢(qián)?洗衣店需要投資多少錢(qián)?無(wú)論做什么生意,我們知道都是需要資金的。眼下洗衣店項(xiàng)目受到了頗多人的和喜愛(ài),特別是在黑龍江五常市,很多人都想投資洗衣行業(yè)。那么五常洗衣店需要投資多少錢(qián)?
五常洗衣店投資成本是根據(jù)選擇的地理位置、店面大孝房屋裝修以及投入的洗衣設(shè)備還有其它一些費(fèi)用所組成的。現(xiàn)在市場(chǎng)上主要的投資規(guī)模有小型店,中型店,大型店。隨著經(jīng)濟(jì)水平越來(lái)越高,很多人選擇開(kāi)大型洗衣店,那么大型洗衣店需要投資多少錢(qián)?
想...立水橋安裝鏡子昌平區(qū)立水橋訂做大鏡子北京鑫磊門(mén)業(yè)安裝鏡子15110157820,崇文區(qū)燈市口安裝鏡子廠(chǎng)家,北京安裝鏡子價(jià)格,北京安裝鏡子規(guī)格,批發(fā)安裝鏡子,北京安裝鏡子上門(mén)服務(wù),批發(fā)生產(chǎn)制作,鋼化玻璃磨砂玻璃鏡子玻璃活動(dòng)鏡子烤漆玻璃夾膠玻璃冰裂玻璃中空玻璃隔音玻璃刻花玻璃玉沙玻璃幕墻玻璃工藝玻璃茶鏡玻璃紫鏡玻璃灰鏡玻璃銀鏡玻璃家私玻璃夾絲玻璃強(qiáng)化玻璃各種裝修裝飾玻璃浴場(chǎng)賓館飯店裝修玻璃工程.專(zhuān)業(yè)安裝玻璃鏡子,舞蹈室鏡子,浴室鏡,穿衣鏡,灰鏡,黑鏡等產(chǎn)...
|
|
|
|
|