中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress 2萬條就卡鄭州seo公司哪家好

wordpress 2萬條就卡,鄭州seo公司哪家好,杭州專業(yè)網(wǎng)站制作設(shè)計(jì),哪里網(wǎng)站用vue.js做的jvm的垃圾回收算法有標(biāo)記-清除、復(fù)制、標(biāo)記-整理、分代回收算法,它們分別有不同的實(shí)現(xiàn): 一、標(biāo)記-清除算法 利用可達(dá)性分析算法分析之后,將未被標(biāo)記的對象[即不可達(dá)對象]清除,以便回收它們所占用的內(nèi)存。 缺點(diǎn): 1、需…

? ? ? ? jvm的垃圾回收算法有標(biāo)記-清除、復(fù)制、標(biāo)記-整理、分代回收算法,它們分別有不同的實(shí)現(xiàn):

一、標(biāo)記-清除算法

? ? ? ? 利用可達(dá)性分析算法分析之后,將未被標(biāo)記的對象[即不可達(dá)對象]清除,以便回收它們所占用的內(nèi)存。

缺點(diǎn):

? ? ? ? 1、需要對內(nèi)存進(jìn)行兩次遍歷,一次遍歷標(biāo)記,一次遍歷清除,效率較低;

? ? ? ? 2、這種算法會(huì)造成大量的內(nèi)存碎片,以至于出現(xiàn)當(dāng)我們需要一片連續(xù)的大的內(nèi)存空間去存儲(chǔ)對象的時(shí)候無法找到合適的內(nèi)存。

? ? ? ? CMS收集器就是用的標(biāo)記-清除算法,CMS為了解決碎片式內(nèi)存提供了內(nèi)存合并整理的功能,但是這個(gè)功能的執(zhí)行會(huì)導(dǎo)致用戶線程暫停,會(huì)延長STW,導(dǎo)致程序性能下降。

二、復(fù)制算法:

? ? ? ? 為了解決清除算法的內(nèi)存碎片問題,復(fù)制算法將內(nèi)存一分為二,每次只使用一半的內(nèi)存去存儲(chǔ)對象,當(dāng)這一半內(nèi)存不夠用的時(shí)候觸發(fā)gc,將存活下來的對象移到另外一半內(nèi)存,然后將當(dāng)前這一半內(nèi)存清空,以便在下一次gc的時(shí)候使用。

? ? ? ? 復(fù)制算法是沒有標(biāo)記過程的,它在可達(dá)性分析的過程中將存活的對象直接復(fù)制到另一半內(nèi)存。而標(biāo)記過程是為了找出未被標(biāo)記的對象來進(jìn)行清除。

缺點(diǎn)

????????每次只能使用一半內(nèi)存,內(nèi)存使用率低,gc頻繁。

改進(jìn)

? ? ? ? 在新生代中,因?yàn)榇蟛糠值膶ο蠖际浅λ?#xff0c;每次gc存活下來的對象占比很少,所以將新生代按照8:1:1的比例劃分為Eden、survivor from、survivor to三個(gè)區(qū),每次minor gc時(shí),都是將eden和一個(gè)survivor區(qū)存活下來的對象復(fù)制到另外一個(gè)survivor區(qū),然后清空eden和對應(yīng)的survivor區(qū)。雖然我們其實(shí)是無法保證每次minor gc過后存活下來的對象占比永遠(yuǎn)低于10%,但是有老年代為新生代做內(nèi)存兜底,當(dāng)存活下來的對象在另一個(gè)survivor區(qū)保存不下時(shí),將這些對象轉(zhuǎn)移到老年代。

三、標(biāo)記-整理算法?

?????????先對對象進(jìn)行標(biāo)記,然后將存活下來的對象向內(nèi)存的一端移動(dòng),然后回收不再存活的對象所占用的內(nèi)存。標(biāo)記整理算法是針對于老年代提出來的算法,因?yàn)槔夏甏拇蟛糠謱ο蠖际墙?jīng)過了很多次gc之后仍然存活的對象,這些對象生存率高,如果對它們使用復(fù)制算法的話,就會(huì)造成一次次的復(fù)制而浪費(fèi)時(shí)間。

四、分代收集算法?

? ? ? ? 因?yàn)樾律屠夏甏膶ο笥兄煌奶攸c(diǎn),新生代存放的是大部分的新創(chuàng)建的對象,這些對象大部分都是朝生夕死,因此每次minor gc都會(huì)有大量的對象被回收;而老年代的對象是經(jīng)歷了多次gc依然存活下來的對象,老年代中的對象存活率高。所以我們不適合將新生代和老年代的對象一起gc,新生代和老年代適合不同的gc算法,并且適合在不同的時(shí)機(jī)去觸發(fā)gc。新生代使用復(fù)制算法,老年代使用標(biāo)記整理或清除算法?,F(xiàn)在的商用的虛擬機(jī)都是使用分代收集。?


?

CMS和G1?

? ? ? ? cms收集器只回收老年代,使用標(biāo)記-清除算法;G1既回收新生代又回收老年代,使用標(biāo)記-整理算法。

? ? ? ? CMS因?yàn)槠涫褂玫氖菢?biāo)記-清除算法,所以會(huì)有個(gè)嚴(yán)重問題就是在gc之后產(chǎn)生大量的內(nèi)存碎片,當(dāng)我們無法找到一塊兒足夠大的連續(xù)內(nèi)存去存儲(chǔ)對象的時(shí)候,就不得不再一次觸發(fā)gc。

? ? ? ? G1打破了原有的對于堆的分代概念,將堆分為一個(gè)個(gè)大小相等的region,并且提供了可預(yù)測的停頓時(shí)間模型,使得我們可以去設(shè)置在一定的時(shí)長內(nèi)所期望的停頓時(shí)間,在執(zhí)行g(shù)c的時(shí)候,會(huì)將region按照回收價(jià)值和回收耗時(shí)進(jìn)行排序,依據(jù)我們所設(shè)置的期望停頓時(shí)間去制定一個(gè)回收方案,回收部分region。

? ? ? ? G1的優(yōu)勢很明顯,它無需和其他的收集器配合,自己便可以回收新生代和老年代;它支持可預(yù)期的停頓時(shí)間,提高了gc的效率。

垃圾回收的觸發(fā)時(shí)機(jī)?

新生代垃圾回收觸發(fā)時(shí)機(jī)

????????當(dāng) eden 區(qū)內(nèi)存無法為一個(gè)新對象分配內(nèi)存時(shí),就會(huì)觸發(fā) Minor GC

老年代垃圾回收觸發(fā)時(shí)機(jī):

????????1、如果沒有設(shè)置-XX:+UseCMSInitiatingOccupancyOnly,虛擬機(jī)會(huì)根據(jù)收集的數(shù)據(jù)決定是否觸發(fā)(建議線上環(huán)境帶上這個(gè)參數(shù),不然會(huì)加大問題排查的難度)。
????????2、老年代使用率達(dá)到閾值?CMSInitiatingOccupancyFraction,默認(rèn)92%。
????????3、永久代的使用率達(dá)到閾值?CMSInitiatingPermOccupancyFraction,默認(rèn)92%,前提是開啟?CMSClassUnloadingEnabled
????????4、新生代的晉升擔(dān)保失敗。老年代沒有足夠的空間來容納全部的新生代對象或歷史平均晉升到老年代的對象,如果不夠的話,就提早進(jìn)行一次老年代的回收,防止下次進(jìn)行YGC的時(shí)候發(fā)生晉升失敗。

老年代空間分配擔(dān)保規(guī)則

????????在執(zhí)行任何一次Minor GC之前,JVM會(huì)先檢查一下老年代的可用內(nèi)存空間,是否大于新生代所有對象的總大小。因?yàn)樵跇O端的情況下,可能新生代Minor GC過后,所有對象都存活下來了,并且所有對象全部要晉升到老年代,老年代得有足夠的空間去存儲(chǔ)它們。

????????假如Minor GC之前,發(fā)現(xiàn)老年代的可用內(nèi)存已經(jīng)小于了新生代的全部對象大小了,就會(huì)看一下“-XX:-HandlePromotionFailure”的參數(shù)是否設(shè)置了如果有這個(gè)參數(shù),那么就會(huì)繼續(xù)嘗試進(jìn)行下一步判斷。

????????下一步判斷,就是看看老年代的內(nèi)存大小,是否大于之前每一次Minor GC后進(jìn)入老年代的對象的平均大小。

????????舉個(gè)例子,之前每次Minor GC后,平均都有10MB左右的對象會(huì)進(jìn)入老年代,那么此時(shí)老年代可用內(nèi)存大于10MB。

????????這就說明,很可能這次Minor GC過后也是差不多10MB左右的對象會(huì)進(jìn)入老年代,此時(shí)老年代空間是夠的,

????????如果上面那個(gè)步驟判斷失敗了,或者是“-XX:-HandlePromotionFailure”參數(shù)沒設(shè)置,此時(shí)就會(huì)直接觸發(fā)一次“Full GC”,就是對老年代進(jìn)行垃圾回收,盡量騰出來一些內(nèi)存空間,然后再執(zhí)行Minor GC。

????????如果上面兩個(gè)步驟都判斷成功了,那么就是說可以冒點(diǎn)風(fēng)險(xiǎn)嘗試一下Minor GC。此時(shí)進(jìn)行Minor GC有幾種可能。

????????第一種可能,Minor GC過后,剩余的存活對象的大小,是小于Survivor區(qū)的大小的,那么此時(shí)存活對象進(jìn)入Survivor區(qū)域即可。

????????第二種可能,Minor GC過后,剩余的存活對象的大小,是大于 Survivor區(qū)域的大小,但是是小于老年代可用內(nèi)存大小的,此時(shí)就直接進(jìn)入老年代即可。

????????第三種可能,很不幸,Minor GC過后,剩余的存活對象的大小,大于了Survivor區(qū)域的大小,也大于了老年代可用內(nèi)存的大小。此時(shí)老年代都放不下這些存活對象了,就會(huì)發(fā)生“Handle Promotion Failure”的情況,這個(gè)時(shí)候就會(huì)觸發(fā)一次“Full GC”。

????????Full GC就是對老年代進(jìn)行垃圾回收,同時(shí)也一般會(huì)對新生代進(jìn)行垃圾回收。因?yàn)檫@個(gè)時(shí)候必須得把老年代里的沒人引用的對象給回收掉,然后才可能讓Minor GC過后剩余的存活對象進(jìn)入老年代里面。如果要是Full GC過后,老年代還是沒有足夠的空間存放Minor GC過后的剩余存活對象,那么此時(shí)就會(huì)導(dǎo)致所謂的“OOM”內(nèi)存溢出了。因?yàn)閮?nèi)存實(shí)在是不夠了,你還是要不停的往里面放對象,當(dāng)然就崩潰了。

?

????????

http://www.risenshineclean.com/news/39822.html

相關(guān)文章:

  • 網(wǎng)站后端開發(fā)需要學(xué)什么互聯(lián)網(wǎng)營銷師考證多少錢
  • 做調(diào)查問卷換賞金的網(wǎng)站百度推廣客服電話
  • 做ps圖標(biāo)什么網(wǎng)站最好什么關(guān)鍵詞可以搜到那種
  • 黨建網(wǎng)站建設(shè)方案自媒體運(yùn)營主要做什么
  • 黑鏡wordpress主題優(yōu)化防疫措施+科學(xué)精準(zhǔn)防控
  • 幫媽媽做家務(wù)作文網(wǎng)站百度極速版免費(fèi)下載安裝
  • 類似網(wǎng)站的建設(shè)無錫百度正規(guī)推廣
  • 網(wǎng)站設(shè)計(jì)培訓(xùn)班詢站長工具推薦網(wǎng)站
  • 門戶網(wǎng)站是內(nèi)網(wǎng)還是外網(wǎng)2345網(wǎng)址導(dǎo)航桌面版
  • 網(wǎng)站開發(fā)用php還是java好seo排名
  • 負(fù)責(zé)網(wǎng)站開發(fā)的崗位建立網(wǎng)站怎么搞
  • 鶴壁做網(wǎng)站的公司360搜索引擎地址
  • 順義做網(wǎng)站公司百度指數(shù)的網(wǎng)址
  • 哪家公司做網(wǎng)站好新區(qū)seo整站優(yōu)化公司
  • 如何拿qq空間做網(wǎng)站推廣搜索怎么選關(guān)鍵詞
  • wordpress創(chuàng)建單頁seo優(yōu)化方法有哪些
  • 哈爾濱網(wǎng)站建設(shè)推廣公司網(wǎng)站備案信息查詢
  • 廣州做網(wǎng)站比較有名的公司網(wǎng)站seo檢測工具
  • wordpress 網(wǎng)頁排版錯(cuò)誤寧波seo鏈接優(yōu)化
  • wordpress排行榜模板seo排名點(diǎn)擊軟件推薦
  • 哪些網(wǎng)站可以用來做百科參考西安關(guān)鍵詞優(yōu)化軟件
  • 醫(yī)院網(wǎng)站建設(shè)目的萬網(wǎng)域名查詢接口
  • 長沙網(wǎng)站建設(shè)開發(fā)seo百度網(wǎng)站排名軟件
  • 西安網(wǎng)站建設(shè)陜icp投廣告哪個(gè)平臺(tái)好
  • 網(wǎng)站源碼分享網(wǎng)google服務(wù)框架
  • 怎樣建俄文網(wǎng)站濟(jì)南網(wǎng)站推廣優(yōu)化
  • 本地手機(jī)網(wǎng)站建設(shè)灰色行業(yè)推廣平臺(tái)
  • wordpress 插入音樂浙江seo公司
  • 優(yōu)化外包顧問青島seo網(wǎng)站排名優(yōu)化
  • 深圳網(wǎng)站seo教程簡述提升關(guān)鍵詞排名的方法