freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java內(nèi)存優(yōu)化-畢玄(存儲版)

2024-09-02 18:35上一頁面

下一頁面
  

【正文】 用建議使用256k。 在回收后,如UseAdaptiveSizePolicy,PS GC會根據(jù)運(yùn)行狀態(tài)動態(tài)調(diào)整eden、to以及TenuringThreshold的大小。并發(fā)的線程數(shù)默認(rèn)為:( 并行GC線程數(shù)+3)/4,也可通過ParallelCMSThreads指定。系統(tǒng)調(diào)優(yōu)方法步驟:評估現(xiàn)狀 設(shè)定目標(biāo) 嘗試調(diào)優(yōu) 衡量調(diào)優(yōu) 細(xì)微調(diào)整設(shè)定目標(biāo):1)降低Full GC的執(zhí)行頻率?2)降低Full GC的消耗時間?3)降低Full GC所造成的應(yīng)用停頓時間?4)降低Minor GC執(zhí)行頻率?5)降低Minor GC消耗時間?例如某系統(tǒng)的GC調(diào)優(yōu)目標(biāo):降低Full GC執(zhí)行頻率的同時,盡可能降低minor GC的執(zhí)行頻率、消耗時間以及GC對應(yīng)用造成的停頓時間。 現(xiàn)象:系統(tǒng)響應(yīng)速度大概為100ms;當(dāng)系統(tǒng)QPS增長到40時,機(jī)器每隔5秒就執(zhí)行一次minor gc,每隔3分鐘就執(zhí)行一次full gc,并且很快就一直full GC了;每次Full gc后舊生代大概會消耗400M,有點(diǎn)多了。 (1)降低響應(yīng)時間或請求次數(shù),這個需要重構(gòu),比較麻煩;——這個是終極方法,往往能夠順利的解決問題,因?yàn)榇蟛糠值膯栴}均是由程序自身造成的。 (3)減少每次請求的內(nèi)存的消耗,貌似比較靠譜;——這個是海市蜃樓,沒有太好的辦法。 (5)減少每次minor gc晉升到old的對象。 完整內(nèi)存分配策略 8)執(zhí)行最大壓縮full gc,在eden上分配; 2)先調(diào)用invoke_nopolicy 如不需要嘗試scavenge,則返回false,否則繼續(xù); 優(yōu)缺點(diǎn):32位系統(tǒng)下,~2G;64為操作系統(tǒng)對內(nèi)存無限制。此值對系統(tǒng)性能影響較大,Sun官方推薦配置為整個堆的3/8。設(shè)置為4,則兩個Survivor區(qū)與一個Eden區(qū)的比值為2:4,一個Survivor區(qū)占整個年輕代的1/6XX:MaxPermSize=16m:設(shè)置持久代大小為16m。 1. 吞吐量優(yōu)先的并行收集器如上文所述,并行收集器主要以到達(dá)一定的吞吐量為目標(biāo),適用于科學(xué)技術(shù)和后臺處理等。 java Xmx3550m Xms3550m Xmn2g Xss128k XX:+UseParallelGC XX:ParallelGCThreads=20 XX:+UseParallelOldGCXX:+UseParallelOldGC:配置年老代垃圾收集方式為并行收集。適用于應(yīng)用服務(wù)器、電信領(lǐng)域等。 167。 total 55296K, used 52568K [0x1ebd0000, 0x227d0000, 0x227d0000)eden space 49152K,tenured generation the space 8192K, rw space 12288K, 55% used [0x21bd0000, 0x21f2a5e8, 0x221d0000) total 69632K, used 3182K [0x227d0000, 0x26bd0000, 0x26bd0000)the space 69632K, 4. 常見配置匯總 1. 堆設(shè)置 167。如:3,表示Eden:Survivor=3:2,一個Survivor區(qū)占整個年輕代的1/5 167。 XX:+PrintGCTimeStamps 167。 XX:+CMSIncrementalMode:設(shè)置為增量模式。 o 吞吐量優(yōu)先的應(yīng)用:盡可能的設(shè)置大,可能到達(dá)Gbit的程度。 花在年輕代和年老代回收上的時間比例 減少年輕代和年老代花費(fèi)的時間,一般會提高應(yīng)用的效率 o 吞吐量優(yōu)先的應(yīng)用:一般吞吐量優(yōu)先的應(yīng)用都有一個很大的年輕代和一個較小的年老代。 XX:+UseParallelGC 并行收集 典型設(shè)置(例子中的堆分配的都比較大,注意自己平臺的限制,下文同):從下圖,應(yīng)該可以看到整個堆大小=年輕代大小 + 年老代大小,Xms和Xmx不包括Perm Size。設(shè)置為4,則兩個Survivor區(qū)與一個Eden區(qū)的比值為2:4,一個Survivor區(qū)占整個年輕代的1/6XX:MaxPermSize=16m:設(shè)置持久代大小為16m。默認(rèn)情況下,如果想使用其他收集器需要在啟動時加入相應(yīng)參數(shù)。此值最好配置與處理器數(shù)目相等。 ??膳cCMS收集同時使用。 XX:+PrintGC 輸出形式:[GC 118250K113543K(130112K), secs] [Full GC 121376K10414K(130112K), secs] Xloggc:filename:與上面幾個配合使用,把相關(guān)日志信息記錄到文件以便分析。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個年輕代年老代和的1/4 XX:+UseParalledlOldGC:設(shè)置并行年老代收集器 XX:ParallelGCThreads=n:設(shè)置并行收集器收集時使用的CPU數(shù)。適用于單CPU情況。在此種情況下,年輕代收集發(fā)生的頻率也是最小的。如果堆設(shè)置小了,可以會造成內(nèi)存碎片、高回收頻率以及應(yīng)用暫停而使用傳統(tǒng)的標(biāo)記清除方式;如果堆大了,則需要較長的收集時間。如果出 現(xiàn)“碎片”,可能需要進(jìn)行如下配置: 當(dāng)收集器回收時,他會把相鄰的空間進(jìn)行合并,這樣可以分配給較大的對象。 年老代大小選擇 年輕代大小選擇 并發(fā)收集器設(shè)置 Xloggc:filename XX:+UseSerialGC:設(shè)置串行收集器 XX:NewSize=n:設(shè)置年輕代大小可與上面混合使用輸出形式:Total time for which application threads were stopped: seconds 輔助信息 JVM提供了大量命令行參數(shù),打印信息,供調(diào)試使用。所以,此時年輕代大小最好用Xmn設(shè)置。但是從“Additionally, as an implicit goal the throughput collector will try to met the other goals in the smallest heap that it can.”覺得JVM并非自動調(diào)整年輕代,而是整個堆的大小,個人覺得此時應(yīng)該設(shè)置堆大小的一個范圍,且不能手動設(shè)置Xmn2g,否則如何調(diào)整?可惜文檔中未有清晰寫明,不過幸運(yùn)的是一般調(diào)整也不必到如此細(xì)致的地步。即上述配置下,年輕代使用并發(fā)收集,而年老代仍舊使用串行收集。o java Xmx3550m Xms3550m Xss128k XX:NewRatio=4 XX:SurvivorRatio=4 XX:MaxPermSize=16m XX:MaxTenuringThreshold=0XX:NewRatio=4:設(shè)置年輕代(包括Eden和兩個Survivor區(qū))與年老代的比值(除去持久代)。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。32位系統(tǒng) 下,~2G;64為操作系統(tǒng)對內(nèi)存無限制。 o XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這里設(shè)置多少次Full GC后,對年老代進(jìn)行壓縮 轉(zhuǎn)載之:這篇也不錯: Ergonomic Settings(自動優(yōu)化的參數(shù))對于有2塊CPU和2GB內(nèi)存及更佳配置的服務(wù)器,Sun的hotspot jdk默認(rèn)設(shè)置了如下參數(shù): 持久代并發(fā)收集次數(shù) 167。在此種情況下,年輕代收集發(fā)生的頻率也是最小的。 XX:GCTimeRatio=n:設(shè)置垃圾回收時間占程序運(yùn)行時間的百分比。 XX:+PrintGC 167。 XX:SurvivorRatio=n:年輕代中Eden區(qū)與兩個Survivor區(qū)的比值。 rw space 12288K, the space 8192K,tenured generation 0% used [0x1ebd0000, 0x1ebd0000, 0x21bd0000) total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)def new generation可與CMS收集同時使用。 XX:MaxGCPauseMillis=100 XX:+UseAdaptiveSizePolicyXX:+UseAdaptiveSizePolicy:設(shè)置此選項后,并行收集器會自動選擇年輕代區(qū)大小和相應(yīng)的Survivor區(qū)比例,以達(dá)到目標(biāo)系統(tǒng)規(guī)定的最低相應(yīng)時間或者收集頻率等,此值建議使用并行收集器時,一直打開。此值最好配置與處理器數(shù)目相等。默認(rèn)情況下,如果想使用其他收集器需要在啟動時加入相應(yīng)參數(shù)。o java Xmx3550m Xms3550m Xss128k XX:NewRatio=4 XX:SurvivorRatio=4 XX:MaxPermSize=16m XX:MaxTenuringThreshold=0XX:NewRatio=4:設(shè)置年輕代(包括Eden和兩個Survivor區(qū))與年老代的比值(除去持久代)。整個JVM內(nèi)存大小=年輕代大小 + 年老代大小 + 持久代大小。通常默認(rèn)的TLAB區(qū)域大小是Eden區(qū)域的1%,當(dāng)然也可以手工進(jìn)行調(diào)整,對應(yīng)的JVM參數(shù)是XX:TLABWasteTargetPercent。1TLAB的解釋 2)浮動垃圾,沒辦法,所以內(nèi)存空間要稍微大一點(diǎn); 多線程掃描活的對象,并基亍copying算法回收,回收時相應(yīng)的晉升對象到舊生代; 先檢查是不是要嘗試scavenge; 1)如gc所執(zhí)行的時間超過,直接結(jié)束; 10)如還失敗,回到2。 2)當(dāng)eden上分配失敗時,檢查需要分配的大小是否 = eden space的一半,如是,則直接在老生代分配; 3)如上面的結(jié)果為false,則執(zhí)行full gc;如上面的結(jié)果為true,執(zhí)行下面的步驟; 6)嘗試擴(kuò)大堆并分配; 4)根據(jù)策略決定執(zhí)行新生代GC或Full GC,執(zhí)行full gc時不清除soft Ref; 2)檢查是否需要在新生代上分配,如需要分配的大小小于PretenureSizeThreshold,則在eden區(qū)上進(jìn)行分配,分配成功則返回;分配失敗則繼續(xù); 新生代串行GC(Serial Copying)完整內(nèi)存的分配策略:嘗試調(diào)優(yōu):注意Java RMI的定時GC觸發(fā)機(jī)制,可通過:XX:+DisableExplicitGC來禁止或通過 =3600000來控制觸發(fā)的時間。 CMSTriggerRatio默認(rèn)值: 80。并行Compacting:可通過XX:+UseParallelOldGC強(qiáng)制指定。 經(jīng)歷多次minor gc仍存活的對象,可通過以下參數(shù)來控制:AlwaysTenure,默認(rèn)false,表示只要minor GC時存活,就晉升到老生代;NeverTenure,默認(rèn)false,表示永不晉升到老生代;上面兩個都沒設(shè)置的情冴下,如UseAdaptiveSizePolicy,啟動時以InitialTenuringThreshold值作為存活次數(shù)的閾值,在每次ps gc后會動態(tài)調(diào)整,如不使用UseAdaptiveSizePolicy,則以MaxTenuringThreshold為準(zhǔn)。 to space放不下的,直接放入老生代;2)并行GC(ParNew):CMS GC時默認(rèn)采用,也可采用XX:+UseParNewGC強(qiáng)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1