国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

凡科免費(fèi)建設(shè)企業(yè)網(wǎng)站靠譜嗎個(gè)人做外貿(mào)怎樣起步

凡科免費(fèi)建設(shè)企業(yè)網(wǎng)站靠譜嗎,個(gè)人做外貿(mào)怎樣起步,上海集酷網(wǎng)站,佛山公司網(wǎng)站建設(shè)文章目錄垃圾收集器介紹總結(jié)各個(gè)垃圾收集器之間的關(guān)系垃圾收集器使用命令及默認(rèn)值詳解各個(gè)垃圾收集器SerialParNewParallel ScavengeSerial OldParallel OldCMS(Concurrent Mark Sweep)G1(Garbage First)適用場(chǎng)景及推薦垃圾收集器介紹總結(jié) 垃圾收集器可以幫助我們進(jìn)行具體的垃…

文章目錄

    • 垃圾收集器介紹總結(jié)
    • 各個(gè)垃圾收集器之間的關(guān)系
    • 垃圾收集器使用命令及默認(rèn)值
    • 詳解各個(gè)垃圾收集器
      • Serial
      • ParNew
      • Parallel Scavenge
      • Serial Old
      • Parallel Old
      • CMS(Concurrent Mark Sweep)
      • G1(Garbage First)
    • 適用場(chǎng)景及推薦

垃圾收集器介紹總結(jié)

垃圾收集器可以幫助我們進(jìn)行具體的垃圾回收操作,在Java中,有幾款非常經(jīng)典的垃圾回收器,這些經(jīng)典的垃圾收集器盡管已經(jīng)算不上是最先進(jìn)的技術(shù),但是它們?cè)趯?shí)踐中千錘百煉,足夠成熟,基本上可以認(rèn)為是可以在生產(chǎn)環(huán)境中放心使用的全部垃圾收集器了.

目前主要有7款經(jīng)典的垃圾回收器,筆者對(duì)這幾種進(jìn)行了總結(jié),如下圖所示.
可以直觀的理解各個(gè)垃圾回收器的區(qū)別.

在這里插入圖片描述

這里對(duì)吞吐量額外做一下說(shuō)明:

吞吐量就是處理器用于 運(yùn)行用戶代碼的時(shí)間與處理器總消耗時(shí)間 的比值.
也就是:
在這里插入圖片描述
如果虛擬機(jī)完成某個(gè)任務(wù),用戶代碼加上垃圾收集器總共消耗的100分鐘,其中運(yùn)行垃圾收集花費(fèi)1分鐘,那么吞吐量就是99%.

停頓時(shí)間越短就越適合與用戶發(fā)生交互或需要保證響應(yīng)質(zhì)量的程序,比如基于瀏覽器的B/S系統(tǒng)的服務(wù)端程序,響應(yīng)時(shí)間越短,用戶體驗(yàn)越好; 而吞吐量高則可以盡快的完成程序的運(yùn)算任務(wù),可以更高效的利用處理器資源, 主要適合在后臺(tái)運(yùn)算而不需要太多交互的任務(wù).

各個(gè)垃圾收集器之間的關(guān)系

各個(gè)垃圾收集器并不是可以隨意搭配使用的,而是存在一定的搭配關(guān)系,如下圖所示.

如果不同收集器之間的存在連線,則表示它們可以搭配使用.圖中垃圾收集器所處的區(qū)域,則表示它們屬于新生代垃圾收集器亦或是老年代垃圾收集器.

在這里插入圖片描述

垃圾收集器使用命令及默認(rèn)值

那我們?cè)趺慈ナ褂孟薅ㄊ褂眠@些垃圾收集器呢,可以使用以下命令:
在這里插入圖片描述

目前大多數(shù)生產(chǎn)環(huán)境都使用的是jdk8, 在server模式下,默認(rèn)值是UseParallelGC,也就是新生代默認(rèn)是Parallel Scavenge垃圾回收器,老年代默認(rèn)Serial Old垃圾收集器.

jdk9以后server模式下默認(rèn)是使用G1垃圾回收器.

查看jvm使用的垃圾回收器:
命令行: java -server -XX:+PrintCommandLineFlags -version

詳解各個(gè)垃圾收集器

Serial

它是最基礎(chǔ),歷史上最悠久的收集器, 是一個(gè)新生代的單線程收集器,標(biāo)記和清理都是單線程,優(yōu)點(diǎn)是簡(jiǎn)單高效;在工作的時(shí)候必須"stop the world".

雖然它是單線程的,但并非沒(méi)有用處,它仍舊是HotSpot虛擬機(jī)運(yùn)行在客戶端模式下的新生代默認(rèn)垃圾收集器.因?yàn)樵趦?nèi)存資源首先的環(huán)境下,它是所有收集器里消耗額外內(nèi)存最小的.

同時(shí),對(duì)于并行能力較弱的計(jì)算機(jī)來(lái)說(shuō),串行回收器的專注性和獨(dú)占性往往有更好的性能表現(xiàn)。

ParNew

新生代收并行集器,實(shí)際上是Serial收集器的多線程版本,只是簡(jiǎn)單的將Serial并行化, 在多核CPU環(huán)境下有著比Serial更好的表現(xiàn);對(duì)于其他回收策略,收集算法等等均與Serial一致.在實(shí)現(xiàn)上這兩種收集器也共用了相當(dāng)多的代碼.

該收集器也是激活CMS后,新生代的默認(rèn)垃圾收集器.一般和CMS進(jìn)行搭配使用.

Parallel Scavenge

也是一款新生代并行收集器,同樣是基于標(biāo)記整理算法, 表面上和ParNew非常相似,但最大的不同點(diǎn)就是,Parallel Scavenge的目標(biāo)在于提升吞吐量.它也是jdk8在server模式下的新生代默認(rèn)收集器.

由于與吞吐量密切相關(guān),Parallel Scavenge有一個(gè)參數(shù)還是比較重要的,-XX:+UseAdaptiveSizePolicy.這是一個(gè)開關(guān),當(dāng)這個(gè)參數(shù)被激活后,就不需要人工指定新生代,老年代大小等細(xì)節(jié)參數(shù)了,虛擬機(jī)會(huì)根據(jù)當(dāng)前系統(tǒng)的運(yùn)行情況動(dòng)態(tài)調(diào)整這些參數(shù)以獲得最合適的停頓時(shí)間或最大的吞吐量.這種調(diào)節(jié)方式被稱為垃圾收集器的自適應(yīng)調(diào)節(jié)策略.

如果你對(duì)于收集器運(yùn)作不太了解,手工優(yōu)化存在困難的話,使用這個(gè)自適應(yīng)調(diào)節(jié)策略,把內(nèi)存管理優(yōu)化交給虛擬機(jī)完成也許是一個(gè)很不錯(cuò)的選擇.只需要把最基本的設(shè)置好(如最大堆).然后使用-XX:MaxGCPauseMillis參數(shù)(更關(guān)注停頓時(shí)間)或XX:GCTimeRatio參數(shù)(更關(guān)注吞吐量)給虛擬機(jī)設(shè)計(jì)一個(gè)優(yōu)化目標(biāo),具體細(xì)節(jié)的參數(shù)調(diào)優(yōu)就可以交給虛擬機(jī)完成了.

-XX:MaxGCPauseMillis:最大垃圾收集暫停時(shí)間,單位為毫秒,如:-XX:MaxGCPauseMillis=200,表示垃圾收集暫停時(shí)間最大為200毫秒。默認(rèn)情況下,沒(méi)有指定最大垃圾收集暫停時(shí)間。如果指定了暫停時(shí)間目標(biāo),則會(huì)調(diào)整堆大小與垃圾收集相關(guān)的其他參數(shù),使垃圾收集的暫停時(shí)間短于指定值。這些調(diào)整可能導(dǎo)致降低應(yīng)用的整體吞吐量,也有可能無(wú)法始終滿足所指定的最大垃圾收集暫停時(shí)間目標(biāo)。

-XX:GCTimeRatio:吞吐量大小,如:-XX:GCTimeRatio=19,表示將垃圾收集運(yùn)行時(shí)間的目標(biāo)設(shè)定為應(yīng)用總運(yùn)行時(shí)間(用戶代碼運(yùn)行時(shí)間+垃圾收集運(yùn)行時(shí)間)的1/(1+19),即5%。默認(rèn)值為99,垃圾收集的目標(biāo)時(shí)間占應(yīng)用總運(yùn)行時(shí)間的1/(1+99),即1%.

Serial Old

Serial Old收集器是Serial的老年代版本,采用標(biāo)記-整理算法,是一個(gè)單線程收集器,這個(gè)收集器的主要意義也是提供客戶端模式下的HotSpot虛擬機(jī)使用.

在server模式下可能也有兩種應(yīng)用: 一種是與Parallel Scavenge搭配使用,一種是作為CMS收集器發(fā)生失敗后的后備預(yù)案.

Parallel Old

Parallel Scavenge收集器的老年代版本;采用標(biāo)記-整理算法,支持多線程并發(fā)收集.同樣追求高吞吐量.

該收集器在jdk6才出來(lái),在之前Parallel Scavenge只能與Serial Old搭配使用,但由于單線程的老年代收集中無(wú)法充分利用服務(wù)多處理器并行處理的優(yōu)勢(shì),在老年代內(nèi)存空間很大的情況下這種組合的吞吐量甚至不一定比ParNew+CMS組合更加優(yōu)秀.

直到Parallel Old出現(xiàn)后,"吞吐量?jī)?yōu)先"才算有了名副其實(shí)的搭配,在注重吞吐量或者處理器資源較為稀缺的情況下都可以優(yōu)先考慮Parallel Scavenge+Parallel Old組合.

CMS(Concurrent Mark Sweep)

老年代并行收集器,采用標(biāo)記清除法, 追求最短回收停頓時(shí)間,具有高并發(fā)、低停頓的特點(diǎn).

目前很大一部分Java應(yīng)用集中在網(wǎng)站上或基于瀏覽器的B/S架構(gòu),這類應(yīng)用非常關(guān)注服務(wù)的響應(yīng)速度,希望停頓時(shí)間更短,CMS就非常符合這類需求.

CMS并不是獨(dú)占的回收器,在CMS回收過(guò)程中,應(yīng)用程序仍然在不停的工作,又會(huì)有新的垃圾不斷產(chǎn)生,在使用CMS的過(guò)程中應(yīng)該確保應(yīng)用程序的內(nèi)存足夠可用。CMS不會(huì)等到應(yīng)用程序飽和的時(shí)候才去回收垃圾,而是在某一閥值的時(shí)候開始回收,回收閥值可用指定的參數(shù)進(jìn)行配置,-XX:CMSInitiatingOccupancyFraction來(lái)指定,默認(rèn)為68,也就是說(shuō)當(dāng)老年代的空間使用率達(dá)到68%的時(shí)候,會(huì)執(zhí)行CMS回收。如果內(nèi)存使用率增長(zhǎng)的很快,在CMS執(zhí)行的過(guò)程中,已經(jīng)出現(xiàn)了內(nèi)存不足的情況,此時(shí)CMS回收就會(huì)失敗,虛擬機(jī)將啟動(dòng)老年代串行回收器進(jìn)行垃圾回收,這會(huì)導(dǎo)致應(yīng)用程序中斷,直到垃圾回收完成后才會(huì)正常工作,這個(gè)過(guò)程GC的停頓時(shí)間可能較長(zhǎng),所以-XX:CMSInitiatingOccupancyFraction的設(shè)置要根據(jù)實(shí)際的情況.

CMS是HotSpot追求低停頓的第一次成功嘗試,有自己的優(yōu)點(diǎn),但還是有一些缺點(diǎn):

  1. 在處理器核心數(shù)量不足4個(gè)時(shí),CMS對(duì)應(yīng)用程序的影響可能變得很大,可能導(dǎo)致用戶程序速度忽然大幅降低,因?yàn)槠鋾?huì)占用一部分處理器資源.

  2. 當(dāng)內(nèi)存回收使用增長(zhǎng)過(guò)快時(shí),CMS回收失敗時(shí),就會(huì)Full GC,啟用老年代串行回收器進(jìn)行回收

  3. 其采用標(biāo)記清除法,會(huì)產(chǎn)生空間碎片的問(wèn)題,處理這些碎片又會(huì)花費(fèi)較多時(shí)間

G1(Garbage First)

G1收集器是垃圾收集器技術(shù)發(fā)展史上里程碑式的成果.目前已經(jīng)是jdk9及以上版本的server模式下的默認(rèn)垃圾收集器了.

之前的收集器要么工作在新生代,要么工作在老年代,而G1跳出了這個(gè)樊籠,它可以面向堆內(nèi)任何部分進(jìn)行回收,衡量標(biāo)準(zhǔn)不再是它屬于哪個(gè)分代,而是哪塊內(nèi)存中存放的垃圾數(shù)量更多,回收受益最大,這就是G1收集器的Mixed GC模式.

G1作為CMS未來(lái)的繼承人,追求低延遲,但并非純粹的追求低延遲,官方給其設(shè)定的目標(biāo)是在延遲可控的情況下獲得盡可能高的吞吐量.所以擔(dān)當(dāng)起了"全功能收集器"的重任與期望.

G1把連續(xù)的Java堆分成多個(gè)大小相等的獨(dú)立區(qū)域(Region),每一個(gè)Region都可以根據(jù)需要,扮演新生代的Eden空間,survivo空間,亦或是老年代空間,收集器能夠?qū)Π缪莶煌巧膔egion采用不同的策略去進(jìn)行回收,這樣無(wú)論是剛創(chuàng)建的對(duì)象,還是已經(jīng)存活了一段時(shí)間的對(duì)象等都能獲得很好的收集結(jié)果.

G1相比CMS有很多的優(yōu)點(diǎn),比如說(shuō)不會(huì)產(chǎn)生空間碎片、回收之后能夠提供規(guī)整的可用內(nèi)存、更不容易產(chǎn)生Full GC等等.但G1對(duì)對(duì)于CMS的碾壓并不是全方位的,例如:G1為了垃圾回收而使用的內(nèi)存和運(yùn)行時(shí)的額外負(fù)載都比CMS要高.

適用場(chǎng)景及推薦

以上七款經(jīng)典的垃圾回收器,并沒(méi)有絕對(duì)的好壞之分,更不存在"萬(wàn)能"的垃圾收集器.所以我們只能根據(jù)具體應(yīng)用,具體環(huán)境去選擇最適合的一個(gè)垃圾收集器.

首先要明確一個(gè)觀點(diǎn),如果默認(rèn)的收集器沒(méi)有達(dá)到預(yù)期的性能,那么首先嘗試調(diào)整堆和代的大小以滿足預(yù)期的目標(biāo)。如果性能仍然不夠,再嘗試不同的收集器:使用并發(fā)收集器來(lái)減少暫停時(shí)間,并使用并行收集器來(lái)提高多處理器硬件上的總體吞吐量。

  1. 如果應(yīng)用程序就是一個(gè)小內(nèi)存(最多大約100 MB),建議使用選項(xiàng)-XX:+UseSerialGC選擇串行收集器。
  2. 如果應(yīng)用程序?qū)⒃趩蝹€(gè)處理器上運(yùn)行,并且沒(méi)有暫停時(shí)間要求,那么使用選項(xiàng)-XX:+UseSerialGC選擇串行收集器。
  3. 如果應(yīng)用程序性能、吞吐量是第一優(yōu)先級(jí),并且沒(méi)有暫停時(shí)間要求,一秒鐘或更長(zhǎng)時(shí)間的暫停都是可以接受的,那么建議使用-XX:+UseParallelGC或-XX:+UseParallelOldGC 選擇并行收集器。純后臺(tái)程序無(wú)交互,并且是多處理器的,推薦考慮-XX:+UseParallelOldGC
  4. 如果響應(yīng)時(shí)間比總體吞吐量更重要,比如說(shuō)與用戶進(jìn)行交互的,垃圾收集暫停必須很短,那么可以CMS或G1作為垃圾收集器,-XX:+UseG1GC或-XX:+UseConcMarkSweepGC
    目前在小內(nèi)存的應(yīng)用上,CMS的表現(xiàn)大概率仍會(huì)優(yōu)于G1,而在大內(nèi)存應(yīng)用上,G1則大多能發(fā)揮其優(yōu)勢(shì),這個(gè)優(yōu)劣勢(shì)的堆容量平衡點(diǎn)在6-8G之間.

今天的分享就到這里了,有問(wèn)題可以在評(píng)論區(qū)留言,均會(huì)及時(shí)回復(fù)呀.
我是bling,未來(lái)不會(huì)太差,只要我們不要太懶就行, 咱們下期見(jiàn).
在這里插入圖片描述

http://aloenet.com.cn/news/30780.html

相關(guān)文章:

  • 電子商務(wù)網(wǎng)站建設(shè)花費(fèi)今日新聞?lì)^條新聞最新
  • 泗陽(yáng)城鄉(xiāng)建設(shè)局網(wǎng)站域名seo查詢
  • 百度優(yōu)化網(wǎng)站建設(shè)wordpress外貿(mào)獨(dú)立站
  • 網(wǎng)站維護(hù)需要會(huì)什么海外免費(fèi)網(wǎng)站推廣
  • 網(wǎng)站建設(shè)中代碼怎么自己做網(wǎng)頁(yè)
  • 網(wǎng)站設(shè)計(jì)與管理邯鄲百度推廣公司
  • 哪里有國(guó)內(nèi)網(wǎng)站建設(shè)公司淄博網(wǎng)站制作
  • 網(wǎng)站建站公司排名優(yōu)化網(wǎng)站的公司哪家好
  • 日照網(wǎng)站建設(shè)千萬(wàn)別在百度上搜別人名字
  • 杭州灣新區(qū)建設(shè)局網(wǎng)站seo優(yōu)化便宜
  • 學(xué)校網(wǎng)站建設(shè)軟件推薦免費(fèi)的h5制作網(wǎng)站
  • 建設(shè)網(wǎng)站建設(shè)什么掙錢互聯(lián)網(wǎng)品牌營(yíng)銷公司
  • 蘇州高端網(wǎng)站建設(shè)解釋seo網(wǎng)站推廣
  • 電腦做會(huì)計(jì)從業(yè)題目用什么網(wǎng)站最新新聞事件
  • 建設(shè)銀行網(wǎng)站個(gè)人中心大量微信群推廣代發(fā)廣告
  • axure怎么做網(wǎng)站引流推廣營(yíng)銷
  • c 網(wǎng)站開發(fā)如何每天10點(diǎn)執(zhí)行任務(wù)東莞有哪些做推廣的網(wǎng)站
  • 浙江疫情最新消息2020seo超級(jí)外鏈工具免費(fèi)
  • 馬云早期在政府做網(wǎng)站學(xué)電商哪個(gè)培訓(xùn)學(xué)校好
  • 日本風(fēng)格網(wǎng)站seo快速優(yōu)化
  • 哪些企業(yè)網(wǎng)站做得好本地推薦本地推薦
  • 南京建設(shè)工程監(jiān)管網(wǎng)站營(yíng)銷100個(gè)引流方案
  • 怎樣做網(wǎng)站服務(wù)器亞馬遜關(guān)鍵詞搜索工具
  • 做網(wǎng)站要多長(zhǎng)時(shí)間重慶森林電影簡(jiǎn)介
  • 自動(dòng)寫作文網(wǎng)站建站模板免費(fèi)下載
  • 如何做招商性網(wǎng)站百度資源搜索平臺(tái)
  • 做代購(gòu)直接網(wǎng)站下單成都關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • c2c電子商務(wù)網(wǎng)站建設(shè)欄目結(jié)構(gòu)圖最近國(guó)際新聞
  • 有沒(méi)有好的網(wǎng)站是JSP做的高端網(wǎng)站建設(shè)哪個(gè)好
  • 江西省興贛建設(shè)監(jiān)理咨詢有限公司網(wǎng)站個(gè)人網(wǎng)站建設(shè)