自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JVM啟動(dòng)參數(shù)的類別及使用

開發(fā) 后端
本文和大家重點(diǎn)討論一下JVM啟動(dòng)參數(shù),JVM啟動(dòng)參數(shù)共分為三類,分別是標(biāo)準(zhǔn)參數(shù)(-),非標(biāo)準(zhǔn)參數(shù)(-X)和非Stable參數(shù)(-XX),相信本文介紹一定會(huì)讓你有所收獲。

JVM啟動(dòng)參數(shù)還是比較實(shí)用的,于是我研究了一下它的用法,前段時(shí)間下了et項(xiàng)目,啟動(dòng)jBoss的時(shí)候出現(xiàn)了一個(gè)問題,查了一下,發(fā)現(xiàn)是jBoss配置的JVM啟動(dòng)參數(shù)有問題,總結(jié)了一下解決方案希望對(duì)你的學(xué)習(xí)有所幫助。

JVM啟動(dòng)參數(shù)小結(jié)

前段時(shí)間下了et項(xiàng)目,啟動(dòng)jBoss的時(shí)候出現(xiàn)了一個(gè)問題,查了一下,發(fā)現(xiàn)是jBoss配置的JVM啟動(dòng)參數(shù)有問題。后來發(fā)現(xiàn)很多人都遇到過類似的問題。因此,在網(wǎng)上學(xué)習(xí)了相關(guān)資料以后,總結(jié)如下,希望以后對(duì)大家類似問題的查錯(cuò)能夠有點(diǎn)用。

一:JVM啟動(dòng)參數(shù)共分為三類:

其一是標(biāo)準(zhǔn)參數(shù)(-),所有的JVM實(shí)現(xiàn)都必須實(shí)現(xiàn)這些參數(shù)的功能,而且向后兼容;
其二是非標(biāo)準(zhǔn)參數(shù)(-X),指的是JVM底層的一些配置參數(shù),這些參數(shù)在一般開發(fā)中默認(rèn)即可,不需要任何配置。但是在生產(chǎn)環(huán)境中,并不保證所有jvm實(shí)現(xiàn)都滿足,所以為了提高性能,往往需要調(diào)整這些參數(shù),以求系統(tǒng)達(dá)到最佳性能。另外這些參數(shù)不保證向后兼容,也即是說“如有變更,恕不在后續(xù)版本的JDK通知”(這是官網(wǎng)上的原話);
其三是非Stable參數(shù)(-XX),這類參數(shù)在jvm中是不穩(wěn)定的,不適合日常使用的,后續(xù)也是可能會(huì)在沒有通知的情況下就直接取消了,需要慎重使用。

二:JVM內(nèi)存三個(gè)主要的域:

新域、舊域以及永久域。JVM生成的所有新對(duì)象放在新域中。一旦對(duì)象經(jīng)歷了一定數(shù)量的垃圾收集循環(huán)后,便進(jìn)入舊域。而在永久域中是用來存儲(chǔ)JVM自己的反射對(duì)象的,如class和method對(duì)象,而且GC(GarbageCollection)不會(huì)在主程序運(yùn)行期對(duì)永久域進(jìn)行清理。其中新域和舊域?qū)儆诙?,永久域是一個(gè)獨(dú)立域并且不認(rèn)為是堆的一部分。

三:各主要JVM啟動(dòng)參數(shù)的作用如下:

-Xms:設(shè)置jvm內(nèi)存的初始大小
-Xmx:設(shè)置jvm內(nèi)存的最大值
-Xmn:設(shè)置新域的大小(這個(gè)似乎只對(duì)jdk1.4來說是有效的,后來就廢棄了)
-Xss:設(shè)置每個(gè)線程的堆棧大小(也就是說,在相同物理內(nèi)存下,減小這個(gè)值能生成更多的線程)
-XX:NewRatio:設(shè)置新域與舊域之比,如-XX:NewRatio=4就表示新域與舊域之比為1:4
-XX:NewSize:設(shè)置新域的初始值
-XX:MaxNewSize:設(shè)置新域的最大值
-XX:MaxPermSize:設(shè)置永久域的最大值
-XX:SurvivorRatio=n:設(shè)置新域中Eden區(qū)與兩個(gè)Survivor區(qū)的比值。(Eden區(qū)主要是用來存放新生的對(duì)象,而兩個(gè)Survivor區(qū)則用來存放每次垃圾回收后存活下來的對(duì)象)

四:如何使用JVM啟動(dòng)參數(shù):

非常的簡單。舉一個(gè)“HelloWorld”的例子 

  1. publicclassHelloWorld  
  2. {  
  3. publicstaticvoidmain(String[]args)  
  4. {  
  5. System.out.println(”HelloWorld!”);  
  6. }  
  7. }  

 編譯并運(yùn)行:
 

  1. D:\work>javacHelloWorld.java  
  2. D:\work>java-Xms256M-Xmx512MHelloWorld  
  3. HelloWorld! 

這樣就可以了。

而如果你要在J2EE環(huán)境中配置這些參數(shù),那么你需要在J2EE應(yīng)用服務(wù)器或者Servlet容器相關(guān)啟動(dòng)參數(shù)設(shè)置處指定,在其啟動(dòng)文件中來配置,Tomcat是在catalina.bat中配置,JBoss是在run.bat中配置,其他服務(wù)器就不說了。

五:JVM啟動(dòng)參數(shù)使用中常見的錯(cuò)誤:

java.lang.OutOfMemoryError相信很多開發(fā)人員都用到過,這個(gè)主要就是JVM參數(shù)沒有配好引起的,但是這種錯(cuò)誤又分兩種:java.lang.OutOfMemoryError:Javaheapspace和java.lang.OutOfMemoryError:PermGenspace,其中前者是有關(guān)堆內(nèi)存的內(nèi)存溢出,可以同過配置-Xms和-Xmx參數(shù)來設(shè)置,而后者是有關(guān)永久域的內(nèi)存溢出,可以通過配置-XX:MaxPermSize來設(shè)置。

【編輯推薦】

  1. 探究JVM1.6與JVM1.5性能差距
  2. 常見JVM監(jiān)控工具用法介紹
  3. 探索Java工作原理之JVM內(nèi)存回收
  4. 實(shí)例解析Linux平臺(tái)的JVM性能評(píng)測(cè)
  5. 深入JVM:ClassLoader相關(guān)知識(shí)簡介

 

責(zé)任編輯:佚名 來源: javaeye.com
相關(guān)推薦

2010-09-26 09:44:28

JVM啟動(dòng)參數(shù)

2010-09-26 09:54:43

JVM參數(shù)設(shè)置

2009-06-11 09:42:57

netbeans啟動(dòng)參數(shù)

2010-09-27 13:09:29

JVM指令系統(tǒng)

2012-01-11 11:40:57

JavaJVM

2023-11-10 11:23:20

JVM內(nèi)存

2012-01-11 11:28:00

JavaJVM

2010-09-25 13:31:00

TomcatJVM

2011-11-30 13:59:17

JavaJVM

2012-01-11 10:45:57

JavaJVM

2025-01-20 07:00:00

2010-05-27 14:42:40

Linux查看端口

2010-09-26 11:00:48

JVM參數(shù)配置

2010-09-27 14:09:49

NetbeansJVM參數(shù)

2010-09-25 13:13:17

tomcatJVM

2012-03-01 10:51:37

JavaJVM

2013-03-04 10:20:23

JVM優(yōu)化eclipseJVM

2013-03-04 10:59:47

eclipseJVM

2017-05-10 11:08:59

2018-11-01 10:34:37

JVM內(nèi)存配置
點(diǎn)贊
收藏

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