日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

摘要

已經(jīng)使用了一段時間的JAVA,期間也了解和用過一些JVM(Java Virtual machine)參數(shù),但是沒有仔細去整理過每個參數(shù)代表的意義,為此整理成文。

Java使用方式

java [options] classname [args]

java [options] -jar filename [args]

options: 命令行選項,空格分隔

classname: 啟動的class名稱

filename: Jar包名稱(JAR)

args: main()方法參數(shù),空格隔開

加載的class的main()方法必須定義為public static,并且無返回值,參數(shù)是字符串列表

public static void main(String[] args)

如果使用-jar選項,則args是JAR包包含的class。啟動class必須通過Main-Class的manifest指定,示例如下:

jar {

manifest {

attributes 'Main-Class': 'com.xx.xx'

}

}

Options

Java 命令行提供了以下幾種類型的選項

標準選項

非標準選項

高級運行選項

高級JIT編譯選項

高級垃圾回收選項

高級可用性選項

(1) 標準選項被所有類型的JVM支持。標準選項用來做常規(guī)操作,如查看版本,設(shè)定class path等。

(2) 非標準選項一般是指Java HotSpot Virtual Machine特定的選項,不能保證被所有類型的JVM支持,該類選項使用時,以-X開頭。

(3) 高級選項是用于Java HotSpot Virtual Machine特定區(qū)域調(diào)優(yōu)的選項,同樣不能保證被所有的JVM支持。該類選擇使用時,以-XX開頭。對于Boolean類型的選項,通過使用+表示選項生效,- 來標示選項無效。如-XX:+OptionName表示選項OptionName生效,-XX:-OptionName表示選項OptionName無效。

標準選項

所有類型的JVM均支持標準選項, 為此簡單列舉經(jīng)常用到的幾個選項。

-d32

將應用運行在32bit的環(huán)境,如果32bit環(huán)境未初始化或不支持,則報錯。默認是運行在32bit環(huán)境。

-d64

將應用運行在64bit環(huán)境。如果64bit環(huán)境未初始化或不支持,則報錯。默認是運行在32bit環(huán)境。

-help/-?

顯示幫助文檔

-verbose:class

顯示每個加載的class

-verbose:gc

顯示每次垃圾回收事件

-version

顯示當前java 版本

-disableassertions[:[packagename]…|:classname] / -da[:[packagename]…|:classname]

禁用斷言(assert),可以指定禁用斷言的package和class。

-disablesystemassertions / -dsa

禁用全部斷言(assert)

-enableassertions[:[packagename]…|:classname] / -ea[:[packagename]…|:classname]

啟用斷言,可以指定package和class。默認斷言是禁用的。

-enablesystemassertions / -esa

啟用全部斷言(assert)

-server

選擇Java HotSpot Server VM。64bit版本隱含設(shè)置-server。

-D[property]=value

定義系統(tǒng)屬性值。property變量是一個字符串代表屬性名,value代表設(shè)定的屬性值。

以設(shè)置系統(tǒng)的文件編碼為utf-8為例:

-Dfile.encoding=utf-8

?

非標準選項

非標準選項一般是指Java HotSpot Virtual Machine特定的選項。列舉經(jīng)常用到的幾個選項。

-X

顯示有效的-X選項的幫助信息

-Xbatch

禁用后臺編譯。默認情況下JVM是后臺編譯。該選項等同于 -XX:-BackgroundCompilation

-Xloggc:filename

將GC(garbage collection)信息重定向到filename。當-Xloggc和-verbose:gc同時給出時,-Xloggc將重載-verbose:gc

-Xmnsize

設(shè)置堆中年輕代(young generation)的初始值和最大值大小。單位是bytes,常用K,M,G (不區(qū)分大小寫)

年輕代主要放置新對象,這塊區(qū)域也是GC執(zhí)行比較頻繁的區(qū)域。如果該區(qū)域設(shè)置較小,可能導致頻繁minor GC,如果設(shè)置過大,只有Full GC執(zhí)行則每次GC耗時較長。Oracle建議的大小是整個堆大小的1/4 - 1/2之間。

以設(shè)置大小為256 MB為例:

? -Xmn256m

不同于-Xmn同時設(shè)置初始值和最大值,可通過-XX:NewSize設(shè)置初始,-XX:MaxNewSize設(shè)置最大值。

-Xmssize

設(shè)置堆的初始值,該值必須是1024的倍數(shù)并且大于1MB。

以設(shè)置初始值6 MB的堆為例:

? -Xms6m

如果該值不設(shè)置,則通過計算年輕代和老年代的和作為堆的初始值

-Xmxsize

指定應用的最大內(nèi)存大小,該值必須是1024的倍數(shù)并且大于2MB。對于服務(wù)型應用,-Xms和-Xmx常設(shè)置為相同,至于原因涉及垃圾回收機制,如果兩者設(shè)置相同則應用占據(jù)的內(nèi)存不進行動態(tài)擴展。

以設(shè)置最大內(nèi)存大小1G為例:

? -Xmx1g

-Xmx等價于高級選項-XX:MaxHeapSize

-Xsssize

設(shè)置線程棧的大小。

以設(shè)置大小為1024KB的線程棧為例:

? -Xss1024k

-Xss等價于高級選項-XX:ThreadStackSize

高級運行選項

該類選項控制Java HotSpot VM運行時的情況。列舉經(jīng)常用到的幾個選項。

-XX:+DisableAttachMechanism

啟用該選項會導致附件在JVM的工具類如jcmd, jstack,jmap jinfo無效。默認情況該選項無效,JVM提供的工具類可使用。

-XX:MaxDirectMemorySize=size

設(shè)置最大直接內(nèi)存大小為size,對于新IO可以使用堆外內(nèi)存(直接內(nèi)存)構(gòu)建對象,該選項是設(shè)置這塊區(qū)域的大小。

以設(shè)置最大直接內(nèi)存1MB為例:

? -XX:MaxDirectMemorySize=1m

-XX:ThreadStackSize

設(shè)置線程棧大小,等價于-Xss選項。

高級可用性選項

該類選項提供收集系統(tǒng)信息和debug的能力。列舉經(jīng)常用到的幾個選項。

-XX:+HeapDumpOnOutOfMemory

啟用該選項,當出現(xiàn)java.lang.OutOfMemoryError異常時,Java的堆信息會dump到當前目錄的文件中,文件命名為: java_pid[進程PID].hprof,可以通過-XX:HeapDumpPath指定dump文件路徑。通過dump的文件我們利用工具,如MemoryAnalyzer,可以查看系統(tǒng)當時的情況,默認禁用。

-XX:HeapDumpPath=path

指定OutOfMemoryError異常時dump文件的路徑,示例如下:

# 指定dump文件路徑

-XX:HeapDumpPath=/var/log/java_heapdump.hprof

-XX:LogFile=path

設(shè)置log文件,默認情況下在當前目前,命名為hotspot.log。一般我們會利用slf4j工具設(shè)置日志,該選項倒不怎么使用。

高級垃圾回收選項

該類選項是Java HotSpot VM 用來控制垃圾回收。

-XX:+AggressiveHeap

啟用Java堆優(yōu)化。基于服務(wù)器的情況自適應的進行堆優(yōu)化。默認禁用。

-XX:+CMSClassUnloadingEnabled

啟用類卸載當使用CMS(the concurrent mark-sweep)垃圾收集器時。默認啟用。如果禁用該選擇,設(shè)置為-XX:-CMSClassUnloadingEnabled

-XX:CMSInitiatingOccupancyFraction=precent

設(shè)置老年代占比當開始CMS垃圾收集時,數(shù)值在0-100之間。默認值-1。

以老年代占比70%為例:

-XX:CMSInitiatingOccupancyFraction=70

1

-XX:ConcGCThreads=threads

設(shè)置垃圾回收線程的個數(shù)在并發(fā)GC時。默認值為JVM中有效的CPU的個數(shù)。

以線程個數(shù)2為例:

-XX:ConcGCThreads=2

1

-XX:ParallelGCThreads=threads

設(shè)置垃圾回收線程的個數(shù)在并行GC時。默認值為JVM中有效的CPU的個數(shù)。

以線程個數(shù)2為例:

-XX:ParallelGCThreads=2

1

-XX:+DisableExplicitGC

啟用該選項,程序中調(diào)用System.gc()的處理均無效。默認禁用該選項,即程序中顯示調(diào)用System.gc()是執(zhí)行的。

-XX:InitialHeapSize=size

設(shè)置應用內(nèi)存初始大小,該值為0或為1024的倍數(shù)并且大于1 MB

以設(shè)置初始內(nèi)存大小為6 MB為例:

-XX:InitialHeapSize=6m

-XX:InitialHeapSize=6144k

-XX:InitialHeapSize=62914561

如果設(shè)置為0,則初始值為老年代和新生代的和。

-XX:MaxHeapSize=size

設(shè)置應用內(nèi)存最大值,該值為1024的倍數(shù)并且大于2 MB,該值通常與-XX:InitialHeapSize設(shè)置相同。

該選項等價于-Xmx

-XX:NewRatio=ratio

設(shè)置年輕代和老年代的比值,默認為2。

以比值為1為例:

-XX:NewRatio=1

-XX:NewSize=size

設(shè)置堆的年輕代的初始值大小,等價于選項 -Xmn

-XX:+PrintGCDetails

打印每一次GC的詳細信息,默認禁用。

-XX:+PrintGCDateStamps

每次GC均顯示時間戳,默認禁用

-XX:+PrintGCApplicationStoppedTime

打印GC延遲時長,默認禁用

-XX:+UseConCMarkSweepGC

啟用該選項表示在老年代的垃圾回收采用CMS垃圾回收器。啟用該選項之后,-XX:+UseParNewGC選項會自動啟用,并且不能禁用。默認禁用。在JDK 8中,老年代使用CMS的組合方式,年輕代不使用ParNew,即-XX:-UseParNewGC和-XX:+UseConCMarkSweepGC被廢棄。

-XX:+UseG1GC

啟用G1(garbage-first)垃圾收集器。G1是一種服務(wù)器風格的垃圾收集器,針對具有大量RAM的多處理器機器。目標是減少GC延時并且保持吞吐量。建議在設(shè)置堆(>= 6 GB)較大時使用。默認禁用。

-XX:+UseParallelGC

啟用Parallel Scavenge垃圾收集器,該垃圾收集器是多進程處理,目標是提高吞吐量。該選項啟用后,-XX:+UseParallelOldGC會自動啟用,除非顯示禁用。默認禁用。

-XX:+UseParallelOldGC

啟用該選項,在Full GC時使用Parallel Garbage 垃圾收集器。默認禁用。與-XX:+UseParallelGC配對使用。

-XX:+UseParNewGC

啟用該選項,在年輕代采用并行線程垃圾回收器。默認禁用。在JDK 8中,年輕代使用ParNew,老年代不使用CMS的組合方式,即-XX:+UseParNewGC和-XX:-UseConCMarkSweepGC被廢棄。

-XX:+UseSerialGC

啟用單線程垃圾回收器。針對簡單的小應用,不需要特別垃圾回收設(shè)置,該選項是一個交好的選擇。默認禁用。

最后配張年輕代和老年代垃圾回收器的組合圖,加深理解。

Java JVM啟動參數(shù)大全

參考文獻

[1] jdk 1.8 幫助文檔

[2] 深入理解Java虛擬機: JVM高級特性和最佳實踐

分享到:
標簽:JVM
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定