java虛擬機器學習

來源:互聯網
上載者:User

標籤:輸送量   heap   tail   記憶體回收   效能   產生   標記   新生代   系統效能   

方法區、堆、棧、程式計數器、本地方法棧
方法區(永久去):類定義,常量,靜態變數,各個線程共用的記憶體地區,即時編譯的代碼
heap:類對象,list,數組 線程共用區
棧:程式執行時是線程,線程執行就是調用方法,有(局部變數),每個線程都有自己的(線程私人的);每個方法調用都產生一個棧幀,調用方法就是入棧出棧
如果方法一直嵌套調用就會一直壓棧,就可能會出現棧溢出,
程式計數器:程式執行到哪一行了。
本地方法棧:和本地平台(作業系統)叫用作業系統的方法

記憶體回收;
堆:根據對象存活的年齡,分為新生代young Generation,老年代Old,

young Generation分為Eden space 和 Survivor(from,to(不會用))地區
記憶體回收演算法掃描Edenspace 如果有價值的留下來放在survivor(from) 區, 經過預設15次以後還留下來了則放入Oldgegnration

如何回收,
標記-清除 如果對象太大,可以直接放在老年代
標記-整理
複製-演算法 (to是用來騰挪的)
啟動java 虛擬機器時可以設定Eden 和suivivor的比例,
老年代和新生代一樣大

記憶體回收實現
記憶體回收行程
serial收集器 stop the world 全量回收
serial old 收集器
parnew收集器
輸送量優先的,Parallel Scavenger收集器

CMS收集器 伺服器端用的比價多(預設)
G1 回收器
-XX +Use記憶體回收

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m  -XX:MaxTenuringThreshold=0

-Xmx3550m:最大堆記憶體為3550M。

-Xms3550m:初始堆記憶體為3550m。

此值可以設定與-Xmx相同,以避免每次記憶體回收完成後JVM重新分配記憶體。

-Xmn2g:設定年輕代大小為2G。

整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統效能影響較大,Sun官方推薦配置為整個堆的3/8。

-Xss128k:設定每個線程的堆棧大小。

JDK5.0以後每個線程堆棧大小為1M,在相同實體記憶體下,減小這個值能產生更多的線程。但是作業系統對一個進程內的線程數還是有限制的,不能無限產生,經驗值在 3000~5000左右。

-XX:NewRatio=4:設定年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代)。設定為4,則年輕代與年老代所佔比值為1:4,年輕代占整個堆棧的1/5

-XX:SurvivorRatio=4:設定年輕代中Eden區與Survivor區的大小比值。

設定為4,則兩個Survivor區與一個Eden區的比值為2:4,一個Survivor區占整個年輕代的1/6

-XX:MaxPermSize=16m:設定持久代大小為16m。

-XX:MaxTenuringThreshold=15:設定垃圾最大年齡。

如果設定為0的話,則年輕代對象不經過Survivor區,直 接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設定為一個較大值,則年輕代對象會在Survivor區進行多次複製,這樣可以增加對象 再年輕代的存活時間,增加在年輕代即被回收的概論。

 

收集器設定

-XX:+UseSerialGC:設定串列收集器

-XX:+UseParallelGC:設定並行收集器

-XX:+UseParalledlOldGC:設定並行年老代收集器

-XX:+UseConcMarkSweepGC:設定並發收集器

記憶體回收統計資訊

-XX:+PrintGC

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

-Xloggc:filename

並行收集器設定

-XX:ParallelGCThreads=n:設定並行收集器收集時使用的CPU數。並行收集線程數。

-XX:MaxGCPauseMillis=n:設定並行收集最大暫停時間

-XX:GCTimeRatio=n:設定記憶體回收時間占程式已耗用時間的百分比。公式為1/(1+n)

並發收集器設定

-XX:+CMSIncrementalMode:設定為增量模式。適用於單CPU情況。

-XX:ParallelGCThreads=n:設定並發收集器年輕代收集方式為並行收集時,使用的CPU數。並行收集線程數。

java虛擬機器學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.