偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

經(jīng)驗(yàn)分享 JVM調(diào)優(yōu)方法總結(jié)

開發(fā) 后端
這里做一下JVM調(diào)優(yōu)總結(jié),首先要了解Young(年輕代),Tenured(年老代)和Perm(持久代)這幾個(gè)概念,年輕代分三個(gè)區(qū),一個(gè)Eden區(qū),兩個(gè)Survivor區(qū);年老代存放從年輕代存活的對(duì)象;而用于存放靜態(tài)文件,如今Java類、方法等。

你對(duì)JVM調(diào)優(yōu)是否熟悉,這里向大家描述一下,首先要了解幾個(gè)概念,比如說(shuō)Perm持久代,用于存放靜態(tài)文件,如今Java類、方法等。持久代對(duì)垃圾回收沒(méi)有顯著影響,但是有些應(yīng)用可能動(dòng)態(tài)生成或者調(diào)用一些class,例如Hibernate等。

JVM調(diào)優(yōu)總結(jié)

Young(年輕代)

年輕代分三個(gè)區(qū)。一個(gè)Eden區(qū),兩個(gè)Survivor區(qū)。大部分對(duì)象在Eden區(qū)中生成。當(dāng)Eden區(qū)滿時(shí),還存活的對(duì)象將被復(fù)制到Survivor區(qū)(兩個(gè)中的一個(gè)),當(dāng)這個(gè)Survivor區(qū)滿時(shí),此區(qū)的存活對(duì)象將被復(fù)制到另外一個(gè)Survivor區(qū),當(dāng)這個(gè)Survivor去也滿了的時(shí)候,從***個(gè)Survivor區(qū)復(fù)制過(guò)來(lái)的并且此時(shí)還存活的對(duì)象,將被復(fù)制“年老區(qū)(Tenured)”。需要注意,Survivor的兩個(gè)區(qū)是對(duì)稱的,沒(méi)先后關(guān)系,所以同一個(gè)區(qū)中可能同時(shí)存在從Eden復(fù)制過(guò)來(lái)對(duì)象,和從前一個(gè)Survivor復(fù)制過(guò)來(lái)的對(duì)象,而復(fù)制到年老區(qū)的只有從***個(gè)Survivor去過(guò)來(lái)的對(duì)象。而且,Survivor區(qū)總有一個(gè)是空的。

Tenured(年老代)

年老代存放從年輕代存活的對(duì)象。一般來(lái)說(shuō)年老代存放的都是生命期較長(zhǎng)的對(duì)象。

Perm(持久代)

用于存放靜態(tài)文件,如今Java類、方法等。持久代對(duì)垃圾回收沒(méi)有顯著影響,但是有些應(yīng)用可能動(dòng)態(tài)生成或者調(diào)用一些class,例如Hibernate等,在這種時(shí)候需要設(shè)置一個(gè)比較大的持久代空間來(lái)存放這些運(yùn)行過(guò)程中新增的類。持久代大小通過(guò)-XX:MaxPermSize=<N>進(jìn)行設(shè)置。

JVM調(diào)優(yōu)之年輕代大小選擇

◆響應(yīng)時(shí)間優(yōu)先的應(yīng)用:盡可能設(shè)大,直到接近系統(tǒng)的***響應(yīng)時(shí)間限制(根據(jù)實(shí)際情況選擇)。在此種情況下,年輕代收集發(fā)生的頻率也是最小的。同時(shí),減少到達(dá)年老代的對(duì)象。

◆吞吐量?jī)?yōu)先的應(yīng)用:盡可能的設(shè)置大,可能到達(dá)Gbit的程度。因?yàn)閷?duì)響應(yīng)時(shí)間沒(méi)有要求,垃圾收集可以并行進(jìn)行,一般適合8CPU以上的應(yīng)用。

JVM調(diào)優(yōu)之年老代大小選擇

◆響應(yīng)時(shí)間優(yōu)先的應(yīng)用:年老代使用并發(fā)收集器,所以其大小需要小心設(shè)置,一般要考慮并發(fā)會(huì)話率和會(huì)話持續(xù)時(shí)間等一些參數(shù)。如果堆設(shè)置小了,可以會(huì)造成內(nèi)存碎片、高回收頻率以及應(yīng)用暫停而使用傳統(tǒng)的標(biāo)記清除方式;如果堆大了,則需要較長(zhǎng)的收集時(shí)間。***化的方案,一般需要參考以下數(shù)據(jù)獲得:

1.并發(fā)垃圾收集信息

2.持久代并發(fā)收集次數(shù)

3.傳統(tǒng)GC信息

4.花在年輕代和年老代回收上的時(shí)間比例

減少年輕代和年老代花費(fèi)的時(shí)間,一般會(huì)提高應(yīng)用的效率

◆吞吐量?jī)?yōu)先的應(yīng)用:一般吞吐量?jī)?yōu)先的應(yīng)用都有一個(gè)很大的年輕代和一個(gè)較小的年老代。原因是,這樣可以盡可能回收掉大部分短期對(duì)象,減少中期的對(duì)象,而年老代盡存放長(zhǎng)期存活對(duì)象。

JVM調(diào)優(yōu)之較小堆引起的碎片問(wèn)題

因?yàn)槟昀洗牟l(fā)收集器使用標(biāo)記、清除算法,所以不會(huì)對(duì)堆進(jìn)行壓縮。當(dāng)收集器回收時(shí),他會(huì)把相鄰的空間進(jìn)行合并,這樣可以分配給較大的對(duì)象。但是,當(dāng)堆空間較小時(shí),運(yùn)行一段時(shí)間以后,就會(huì)出現(xiàn)“碎片”,如果并發(fā)收集器找不到足夠的空間,那么并發(fā)收集器將會(huì)停止,然后使用傳統(tǒng)的標(biāo)記、清除方式進(jìn)行回收。如果出現(xiàn)“碎片”,可能需要進(jìn)行如下配置:

◆-XX:+UseCMSCompactAtFullCollection:使用并發(fā)收集器時(shí),開啟對(duì)年老代的壓縮。

◆-XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這里設(shè)置多少次FullGC后,對(duì)年老代進(jìn)行壓縮

【編輯推薦】

  1. JVM調(diào)優(yōu)技巧集錦
  2. 探究JVM1.6與JVM1.5性能差距
  3. JVM監(jiān)控在本地和遠(yuǎn)程的應(yīng)用
  4. 圖例解析JVM調(diào)優(yōu)
  5. JVM啟動(dòng)參數(shù)中標(biāo)準(zhǔn)參數(shù)列表速查手冊(cè)
責(zé)任編輯:佚名 來(lái)源: qqtang.spaces.live.com
相關(guān)推薦

2012-01-10 14:35:08

JavaJVM

2012-01-10 15:13:56

JavaJVM

2011-07-01 10:09:50

ASP.NET

2021-03-17 11:35:11

JVM代碼Java

2010-09-25 13:05:07

JVM參數(shù)

2012-01-10 14:18:40

JavaJVM

2019-12-20 14:21:26

JVM調(diào)優(yōu)垃圾回收

2021-05-12 13:40:16

JVM調(diào)優(yōu)經(jīng)驗(yàn)

2019-09-17 08:56:29

TomcatJVM性能

2012-01-09 16:53:36

JavaJVM

2012-01-09 16:02:19

JavaJVM

2017-07-21 08:55:13

TomcatJVM容器

2023-11-11 19:07:23

JVMJava

2012-01-10 11:19:35

JavaJVM

2012-01-09 17:06:16

JavaJVM

2009-07-08 11:11:23

JVM

2010-09-26 13:39:46

JVM調(diào)優(yōu)

2010-09-26 09:08:17

JVM調(diào)優(yōu)

2023-07-31 07:33:05

JVM調(diào)優(yōu)Full GC

2021-06-03 08:32:18

JVM調(diào)優(yōu)虛擬機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)