亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JVM垃圾回收(GC)整理總結學習

2019-11-14 21:05:45
字體:
來源:轉載
供稿:網友
JVM垃圾回收(GC)整理總結學習基本回收算法

1. 引用計數(Reference Counting)比較古老的回收算法。原理是此對象有一個引用,即增加一個計數,刪除一個引用則減少一個計數。垃圾回收時,只用收集計數為0的對象。此算法最致命的是無法處理循環引用的問題。2. 標記-清除(Mark-Sweep)此算法執行分兩階段。第一階段從引用根節點開始標記所有被引用的對象,第二階段遍歷整個堆,把未標記的對象清除。此算法需要暫停整個應用,同時,會產生內存碎片。3. 復制(Copying)此算法把內存空間劃為兩個相等的區域,每次只使用其中一個區域。垃圾回收時,遍歷當前使用區域,把正在使用中的對象復制到另外一個區域中。算法每次只處理正在使用中的對象,因此復制成本比較小,同時復制過去以后還能進行相應的內存整理,不過出現“碎片”問題。當然,此算法的缺點也是很明顯的,就是需要兩倍內存空間。4. 標記-整理(Mark-Compact)此算法結合了 “標記-清除”和“復制”兩個算法的優點。也是分兩階段,第一階段從根節點開始標記所有被引用對象,第二階段遍歷整個堆,把清除未標記對象并且把存活對象 “壓縮”到堆的其中一塊,按順序排放。此算法避免了“標記-清除”的碎片問題,同時也避免了“復制”算法的空間問題。5. 增量收集(Incremental Collecting)實施垃圾回收算法,即:在應用進行的同時進行垃圾回收。不知道什么原因JDK5.0中的收集器沒有使用這種算法的。6. 分代(Generational Collecting)

基于對對象生命周期分析后得出的垃圾回收算法。把對象分為年青代、年老代、持久代,對不同生命周期的對象使用不同的算法(上述方式中的一個)進行回收。現在的垃圾回收器(從J2SE1.2開始)都是使用此算法的。

a. Young(年輕代)年輕代分三個區。一個Eden區,兩個 Survivor區。大部分對象在Eden區中生成。當Eden區滿時,還存活的對象將被復制到Survivor區(兩個中的一個),當這個 Survivor區滿時,此區的存活對象將被復制到另外一個Survivor區,當這個Survivor去也滿了的時候,從第一個Survivor區復制過來的并且此時還存活的對象,將被復制“年老區(Tenured)”。需要注意,Survivor的兩個區是對稱的,沒先后關系,所以同一個區中可能同時存在從Eden復制過來對象,和從前一個Survivor復制過來的對象,而復制到年老區的只有從第一個Survivor去過來的對象。而且,Survivor區總有一個是空的。b. Tenured(年老代)年老代存放從年輕代存活的對象。一般來說年老代存放的都是生命期較長的對象。c. Perm(持久代)用于存放靜態文件,如今java類、方法等。持久代對垃圾回收沒有顯著影響,但是有些應用可能動態生成或者調用一些class,例如Hibernate等,在這種時候需要設置一個比較大的持久代空間來存放這些運行過程中新增的類。持久代大小通過-XX:MaxPermSize=<N>進行設置。

GC類型

1. Scavenge GC一般情況下,當新對象生成,并且在Eden申請空間失敗時,就好觸發Scavenge GC,堆Eden區域進行GC,清除非存活對象,并且把尚且存活的對象移動到Survivor區。然后整理Survivor的兩個區。2. Full GC對整個堆進行整理,包括Young、Tenured和Perm。Full GC比Scavenge GC要慢,因此應該盡可能減少Full GC。有如下原因可能導致Full GC:* Tenured被寫滿* Perm域被寫滿* System.gc()被顯示調用* 上一次GC之后Heap的各域分配策略動態變化

垃圾回收器

1. 串行收集器使用單線程處理所有垃圾回收工作,因為無需多線程交互,所以效率比較高。但是,也無法使用多處理器的優勢,所以此收集器適合單處理器機器。當然,此收集器也可以用在小數據量(100M左右)情況下的多處理器機器上。可以使用-XX:+UseSerialGC打開。2. 并行收集器1. 對年輕代進行并行垃圾回收,因此可以減少垃圾回收時間。一般在多線程多處理器機器上使用。使用-XX:+UseParallelGC.打開。并行收集器在J2SE5.0更新上引入,在Java SE6.0中進行了增強--可以堆年老代進行并行收集。如果年老代不使用并發收集的話,是使用單線程進行垃圾回收,因此會制約擴展能力。使用-XX:+UseParallelOldGC打開。2. 使用-XX:ParallelGCThreads=<N>設置并行垃圾回收的線程數。此值可以設置與機器處理器數量相等。3. 此收集器可以進行如下配置:* 最大垃圾回收暫停:指定垃圾回收時的最長暫停時間,通過-XX:MaxGCPauseMillis=<N>指定。<N>為毫秒.如果指定了此值的話,堆大小和垃圾回收相關參數會進行調整以達到指定值。設定此值可能會減少應用的吞吐量。* 吞吐量:吞吐量為垃圾回收時間與非垃圾回收時間的比值,通過-XX:GCTimeRatio=<N>來設定,公式為1/(1+N)。例如,-XX:GCTimeRatio=19時,表示5%的時間用于垃圾回收。默認情況為99,即1%的時間用于垃圾回收。

3. 并發收集器可以保證大部分工作都并發進行(應用不停止),垃圾回收只暫停很少的時間,此收集器適合對響應時間要求比較高的中、大規模應用。使用-XX:+UseConcMarkSweepGC打開。1. 并發收集器主要減少年老代的暫停時間,他在應用不停止的情況下使用獨立的垃圾回收線程,跟蹤可達對象。在每個年老代垃圾回收周期中,在收集初期并發收集器會對整個應用進行簡短的暫停,在收集中還會再暫停一次。第二次暫停會比第一次稍長,在此過程中多個線程同時進行垃圾回收工作。2. 并發收集器使用處理器換來短暫的停頓時間。在一個N個處理器的系統上,并發收集部分使用K/N個可用處理器進行回收,一般情況下1<=K<=N/4。3. 在只有一個處理器的主機上使用并發收集器,設置為incremental mode模式也可獲得較短的停頓時間。4. 浮動垃圾:由于在應用運行的同時進行垃圾回收,所以有些垃圾可能在垃圾回收進行完成時產生,這樣就造成了“Floating Garbage”,這些垃圾需要在下次垃圾回收周期時才能回收掉。所以,并發收集器一般需要20%的預留空間用于這些浮動垃圾。5. Concurrent Mode Failure:并發收集器在應用運行時進行收集,所以需要保證堆在垃圾回收的這段時間有足夠的空間供程序使用,否則,垃圾回收還未完成,堆空間先滿了。這種情況下將會發生“并發模式失敗”,此時整個應用將會暫停,進行垃圾回收。6. 啟動并發收集器:因為并發收集在應用運行時進行收集,所以必須保證收集完成之前有足夠的內存空間供程序使用,否則會出現“Concurrent Mode Failure”。通過設置-XX:CMSInitiatingOccupancyFraction=<N>指定還有多少剩余堆時開始執行并發收集

4. 小結* 串行處理器:--適用情況:數據量比較?。?00M左右);單處理器下并且對響應時間無要求的應用。--缺點:只能用于小型應用* 并行處理器:--適用情況:“對吞吐量有高要求”,多CPU、對應用響應時間無要求的中、大型應用。舉例:后臺處理、科學計算。--缺點:應用響應時間可能較長* 并發處理器:--適用情況:“對響應時間有高要求”,多CPU、對應用響應時間有較高要求的中、大型應用。舉例:Web服務器/應用服務器、電信交換、集成開發環境。

調優總結

1. 年輕代大小選擇* 響應時間優先的應用:盡可能設大,直到接近系統的最低響應時間限制(根據實際情況選擇)。在此種情況下,年輕代收集發生的頻率也是最小的。同時,減少到達年老代的對象。* 吞吐量優先的應用:盡可能的設置大,可能到達Gbit的程度。因為對響應時間沒有要求,垃圾收集可以并行進行,一般適合8CPU以上的應用。

2. 年老代大小選擇* 響應時間優先的應用:年老代使用并發收集器,所以其大小需要小心設置,一般要考慮并發會話率和會話持續時間等一些參數。如果堆設置小了,可以會造成內存碎片、高回收頻率以及應用暫停而使用傳統的標記清除方式;如果堆大了,則需要較長的收集時間。最優化的方案,一般需要參考以下數據獲得:o 并發垃圾收集信息o 持久代并發收集次數o 傳統GC信息o 花在年輕代和年老代回收上的時間比例減少年輕代和年老代花費的時間,一般會提高應用的效率* 吞吐量優先的應用:一般吞吐量優先的應用都有一個很大的年輕代和一個較小的年老代。原因是,這樣可以盡可能回收掉大部分短期對象,減少中期的對象,而年老代盡存放長期存活對象。

3. 較小堆引起的碎片問題因為年老代的并發收集器使用標記、清除算法,所以不會對堆進行壓縮。當收集器回收時,他會把相鄰的空間進行合并,這樣可以分配給較大的對象。但是,當堆空間較小時,運行一段時間以后,就會出現“碎片”,如果并發收集器找不到足夠的空間,那么并發收集器將會停止,然后使用傳統的標記、清除方式進行回收。如果出現“碎片”,可能需要進行如下配置:* -XX:+UseCMSCompactAtFullCollection:使用并發收集器時,開啟對年老代的壓縮。* -XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這里設置多少次Full GC后,對年老代進行壓縮

我是天王蓋地虎的分割線

參考:http://chenchendefeng.VEvb.com/blog/455883


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91高清视频免费观看| 亚洲欧美资源在线| 亚洲国产精品字幕| 日韩一二三在线视频播| 91在线免费视频| 国产v综合v亚洲欧美久久| 亚洲aⅴ男人的天堂在线观看| 久久在精品线影院精品国产| 欧美视频中文字幕在线| 亚洲精品美女久久久久| 欧美重口另类videos人妖| 国产激情999| 国产精品久久久久久久9999| 日韩精品免费电影| 77777亚洲午夜久久多人| 在线观看国产精品淫| 久久久精品久久久久| 26uuu亚洲伊人春色| 亚洲爱爱爱爱爱| 欧美丝袜一区二区三区| 国产精品福利无圣光在线一区| 一区二区中文字幕| 欧美精品一区二区免费| 91精品国产乱码久久久久久蜜臀| 日产精品99久久久久久| 国产精品久久久久久五月尺| 国产精品久久久久久久久粉嫩av| 日韩在线免费观看视频| 久久久精品网站| 色伦专区97中文字幕| 欧美精品电影免费在线观看| 久久久极品av| 亚洲国产精品va在线看黑人动漫| 8x海外华人永久免费日韩内陆视频| 欧美日韩电影在线观看| 国产精品久久77777| 欧美交受高潮1| 欧美亚洲午夜视频在线观看| 国模精品视频一区二区三区| 精品国产区一区二区三区在线观看| 中文字幕日韩欧美精品在线观看| 亲爱的老师9免费观看全集电视剧| 欧美日韩一区二区在线| 色综合五月天导航| 欧美日韩亚洲一区二区三区| 国产91网红主播在线观看| 欧美日韩美女在线| 成人黄色av播放免费| 亚洲全黄一级网站| 深夜福利亚洲导航| 久久亚洲精品中文字幕冲田杏梨| 日韩在线一区二区三区免费视频| 欧美激情日韩图片| 亚洲欧洲激情在线| 韩国视频理论视频久久| 久久大大胆人体| 精品国产一区二区三区久久久狼| 久久男人av资源网站| 黑人欧美xxxx| 久久影视三级福利片| 久久久久久一区二区三区| 国产精品日韩欧美| 啪一啪鲁一鲁2019在线视频| 成人在线一区二区| 91精品国产亚洲| 成人伊人精品色xxxx视频| 夜夜躁日日躁狠狠久久88av| 国产精品网站大全| 欧美一级电影久久| 亚洲最大福利视频网站| 亚洲成人免费在线视频| 成人天堂噜噜噜| 57pao成人永久免费视频| 国产自摸综合网| 欧美国产第二页| 日本一本a高清免费不卡| 一区二区亚洲欧洲国产日韩| 久久久亚洲福利精品午夜| 国产精品视频永久免费播放| 91精品91久久久久久| 国产精品专区一| 成人精品久久一区二区三区| 免费99精品国产自在在线| 91久久久亚洲精品| 久久久亚洲国产| 成人午夜在线观看| 欧美日韩成人黄色| 欧美一级成年大片在线观看| 日韩欧美在线第一页| 日韩中文字幕国产| 午夜精品www| 日韩中文字幕第一页| 亚洲欧美日韩精品| 日韩激情在线视频| 欧美wwwwww| 丰满岳妇乱一区二区三区| 高清视频欧美一级| 成人乱色短篇合集| 欧美国产中文字幕| 欧美成人精品激情在线观看| 国产精品18久久久久久首页狼| 亚洲国产精品成人一区二区| 亚洲国产女人aaa毛片在线| 亚洲人免费视频| 久久精品视频亚洲| 午夜欧美大片免费观看| 97国产精品免费视频| 国产精品嫩草视频| 久久精品国产清自在天天线| 国产精品男人爽免费视频1| 欧美视频在线免费| 成人午夜黄色影院| 精品网站999www| 欧美成人午夜激情| 另类专区欧美制服同性| 久久九九亚洲综合| 伦伦影院午夜日韩欧美限制| 国产精品久久色| 日韩在线中文字幕| 亚洲精品一区中文字幕乱码| 欧美成人四级hd版| 992tv在线成人免费观看| 欧美国产日韩二区| 亚洲女人被黑人巨大进入| 亚洲成**性毛茸茸| 亚洲精品久久久久久久久久久| 91在线观看免费观看| 在线观看国产欧美| 亚洲成色777777女色窝| 欧美精品videosex牲欧美| 国产欧美日韩专区发布| 日韩hd视频在线观看| 国产精品三级美女白浆呻吟| 亚洲午夜精品久久久久久久久久久久| 成人中文字幕在线观看| 91久久久久久久一区二区| 午夜精品美女自拍福到在线| 欧美精品在线观看91| 久久久999国产精品| 福利一区福利二区微拍刺激| 国产精品久久久久99| 欧美最猛性xxxx| 日本成人黄色片| 亚洲精品xxxx| 91久久精品国产91性色| 91av在线精品| 中文字幕最新精品| 欧美高清自拍一区| 久久久亚洲国产天美传媒修理工| 一区二区三区黄色| 日本精品久久久| 久久亚洲国产精品成人av秋霞| 久久99精品久久久久久琪琪| 日韩在线中文字幕| 亚洲精品永久免费精品| 97av在线视频| 国产精品美女久久久久久免费| 黑人与娇小精品av专区| 国产成人a亚洲精品| 久久频这里精品99香蕉| 国产又爽又黄的激情精品视频| 精品久久久久久中文字幕一区奶水| 中文日韩在线观看| 亚洲第一福利在线观看|