日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm 参数小结

發(fā)布時(shí)間:2024/1/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm 参数小结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0.參數(shù)默認(rèn)值

java -XX:+PrintFlagsFinal
可以使用 此命令查看參數(shù)默認(rèn)值。示例圖見圖0-1.
圖0-1 看到NewRatio默認(rèn)值為2

1.內(nèi)存相關(guān)

-Xmx ? //Java Heap最大值,默認(rèn)值為物理內(nèi)存的1/4,最佳設(shè)值應(yīng)該視物理內(nèi)存大小及計(jì)算機(jī)內(nèi)其他內(nèi)存開銷而定;
-Xms ??//Java Heap初始值,Server端JVM最好將-Xms和-Xmx設(shè)為相同值,開發(fā)測試機(jī)JVM可以保留默認(rèn)值;
-Xmn? ?//Java Heap 新生代大小,不熟悉最好保留默認(rèn)值;
-Xss? ?//每個(gè)線程的Stack大小,不熟悉最好保留默認(rèn)值;

-XX:MaxDirectMemorySize=128m ?//設(shè)置最大堆外內(nèi)存

-XX:SurvivorRatio=8

新生代中Eden大小 / survivor大小 的值,默認(rèn)值為8。

-XX:NewRatio=2

老年代大小 / 新生代大小 的值,英文名字感覺像是取反了。默認(rèn)值為2。即新生代占堆內(nèi)存的1/3。

-XX:PermSize=128M?

設(shè)置永久代(方法區(qū))的大小。

1.1 默認(rèn)值

-server時(shí)最大堆內(nèi)存是物理內(nèi)存的1/4,但不超過1G。
VM 文檔可參考:http://docs.oracle.com/javase/7/docs/technotes/guides/vm/

1.2 堆外內(nèi)存

tomcat 7中使用了NIO,而這會(huì)占用一部分堆外內(nèi)存。可通過-XX:MaxDirectMemorySize=50m進(jìn)行限制。 親測有效果,堆外內(nèi)存減少了200M,但堆內(nèi)存+永久代+最大堆外內(nèi)存還是小于進(jìn)程的實(shí)際占用內(nèi)存,小了147M。不得其解。

1.3 java8

java 8中PermSpace變?yōu)榱薓etaspace。如最大元空間尺寸就變?yōu)?-XX:MaxMetaspaceSize=xxm?

2. GC策略

2.1 新生代

-XX:+UseParNewGC//指定新生代的收集器為ParNew

2.2 老年代

-XX:+UseConcMarkSweepGC ? ? ?//指定老年代的垃圾收集器為CMS
-XX:CMSInitiatingOccupancyFraction=85 ? ??//老年代占用比例達(dá)到85%時(shí)開始回收

2.3 年齡相關(guān)

-XX:MaxTenuringThreshold=15
指定對(duì)象到達(dá)15歲時(shí)被移到Old區(qū)。默認(rèn)值為15。
需要注意的是,并不是年齡非得到達(dá)指定值后才會(huì)被移到老年代,JVM還有自己的一套規(guī)則,煩人。

3.GC日志

-Xloggc:../gclogdir/logc.txt ? ? ? ??//指定gc日志的打印位置,注意必須指定到文件,不能為目錄。
-XX:+PrintGCDateStamps? -XX:+PrintGCDetails? -XX:+PrintHeapAtGC? -XX:+PrintTenuringDistribution
這個(gè)參數(shù)用于顯示每次Minor GC時(shí)Survivor區(qū)中各個(gè)年齡段的對(duì)象的大小。

4.visual VM遠(yuǎn)程監(jiān)控

使用JMX協(xié)議進(jìn)行遠(yuǎn)程監(jiān)控。 比如在A機(jī)器(windows)上查看B機(jī)器(linux)上j進(jìn)程c(java進(jìn)程)的情況。需要在c啟動(dòng)時(shí)加入?yún)?shù):
-Djava.rmi.server.hostname=B機(jī)器ip -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=port -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

5. 常見搭配

java -server -Xms2g -Xmx2g -Xmn512m -XX:CMSInitiatingOccupancyFraction=85 -XX:SurvivorRatio=8 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -Dcom.sun.management.jmxremote.port=2175 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../dumpdir/ -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xloggc:../gclogdir/

6.IDE中調(diào)試指定參數(shù)

Eclipse中修改待運(yùn)行程序的參數(shù)。package視圖|app.java|右鍵|Run As|Run Configurations,在Arguments 參數(shù)中的“VM arguments: ”中填入如下值即可,見圖6-1。

-Xms256m -Xmx256m


圖6-1 eclipse中指定vm參數(shù)


eclipse中運(yùn)行代碼,實(shí)質(zhì)就是它新開了一個(gè)線程運(yùn)行你的代碼。

通過代碼檢驗(yàn)



總結(jié)

以上是生活随笔為你收集整理的jvm 参数小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。