




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java 虛擬機(jī)的選項(xiàng)請注意:除非特別聲明,否則在一個(gè)選項(xiàng)中指定的bytes (字節(jié))都是作為參數(shù)。您也可以分別通過 k 或者 m 這兩個(gè)字母來指定千個(gè)字節(jié)或者兆個(gè)字節(jié)(大小寫都可以) 。例如,下面的幾種形式都是表示字節(jié)數(shù):4194301,4096k, 4096K ,4m,和4M。一般選項(xiàng)-server在Mac OS X中沒有特別的服務(wù)器虛擬機(jī)(server VM )。在激活java的時(shí)候可以使用 -server 選項(xiàng),但這并不是啟動(dòng)另外的虛擬機(jī),它還是啟動(dòng)客戶虛擬機(jī)(client VM ),只是這個(gè)虛擬機(jī)針對服務(wù)器的使用環(huán)境進(jìn)行了調(diào)優(yōu)。這些調(diào)優(yōu)包括:*在共享檔案的生成過程中使用不同的類列表,
2、這個(gè)列表中不包括 GUI類(見“ MacOS X的Java共享檔案”部分)。*增加Java堆的尺寸。*增加Eden代的內(nèi)存空間的尺寸。* 打開線程的本地 Eden 垃圾收集器( garbage collection )。-X顯示一個(gè)非標(biāo)準(zhǔn)虛擬機(jī)選項(xiàng)的簡要描述。-Xbootclasspath:path指定一個(gè)目錄以及 JAR 和 ZIP 檔案的列表,作為搜索啟動(dòng)類的范圍。列表中各項(xiàng)之間 的分隔符為冒號( :)。-Xfuture對類文件執(zhí)行嚴(yán)格的格式檢查。這個(gè)選項(xiàng)強(qiáng)制 Java 對是否遵守類文件規(guī)范做更加嚴(yán)格 的檢查, 而缺省的檢查只是基于 Java 1.1.x 的標(biāo)準(zhǔn)。 您應(yīng)該使用這個(gè)選項(xiàng)來對代
3、碼進(jìn)行測試, 以便確保這些代碼在未來的Java版本中能夠工作,這些未來的版本可能強(qiáng)制進(jìn)行更為嚴(yán)格的類文件格式檢查。-Xprof 把運(yùn)行程序詳細(xì)的行為分析數(shù)據(jù)發(fā)送給標(biāo)準(zhǔn)輸出。在產(chǎn)品級的代碼中不能使用這個(gè)選 項(xiàng)。-Xrs和 -XX:+ReduceSignalUsage 選項(xiàng)一樣。-XX:+ReduceSignalUsage正常情況下,Java響應(yīng)SIGHUP,SIGINT,和SIGTERM信號。如果指定了這個(gè)選項(xiàng), 則 Java 會忽略這些信號,您要根據(jù)具體的需要在本地代碼中實(shí)現(xiàn)這些信號的處理函數(shù),同 時(shí)還要在System.exit()中實(shí)現(xiàn)相關(guān)的關(guān)閉例程。-XX:ReservedCodeCach
4、eSize=size in bytes設(shè)置最大的代碼緩存的大小,缺省情況下是 32(32M)。 -XX:-PrintJavaStackAtFatalState缺省情況下,當(dāng)本地代碼崩潰時(shí),Java會產(chǎn)生回溯(backtraces)信息。如果您在 Java的錯(cuò)誤報(bào)告中看到了崩潰的信息,則可以把這個(gè)選項(xiàng)關(guān)閉。Mac OS X 專用選項(xiàng)-Xdock:name=applicationName設(shè)定應(yīng)用程序在 Dock 和菜單條上顯示的名稱。如果這個(gè)選項(xiàng)沒有被設(shè)定,則缺省情況 下 Mac OS X 會顯示主類的全名。您只需要對那些從命令行或者 JAR 文件中啟動(dòng)的程序設(shè) 定這個(gè)選項(xiàng), 那些可以雙擊的應(yīng)用程
5、序包則從 Info.plist 文件中讀取正確的顯示名。-XX:+UseFileLocking這個(gè)選項(xiàng)用來激活 Carbon 文件的鎖定功能,缺省情況下關(guān)閉。如果您的 Java 應(yīng)用程序 和一些文件相互作用,而這些文件同時(shí)又受到一些 Carbon 應(yīng)用程序的影響,則您需要使用 這個(gè)選項(xiàng),它可以避免應(yīng)用程序修改那些正在被別的程序訪問的文件。堆的尺寸-Xmssize in bytes設(shè)定Java堆的初始尺寸,缺省尺寸是2097152 (2MB)。這個(gè)值必須是1024個(gè)字節(jié)(1KB ) 的倍數(shù),且比它大。 ( -server 選項(xiàng)把缺省尺寸增加到 32M 。)-Xmnsize in bytes為Ed
6、en對象設(shè)定初始Java堆的大小,缺省值為640K。(-server選項(xiàng)把缺省尺寸增加到2M 。 )-Xmxsize in bytes設(shè)定Java堆的最大尺寸,缺省值為 64M,( -server選項(xiàng)把缺省尺寸增加到 128M。)最 大的堆尺寸達(dá)到將近 2GB(2048MB )。請注意: 很多垃圾收集器的選項(xiàng)依賴于堆大小的設(shè)定。 請?jiān)谖⒄{(diào)垃圾收集器使用內(nèi)存空間的 方式之前,確認(rèn)是否已經(jīng)正確設(shè)定了堆的尺寸。垃圾收集 :內(nèi)存的使用-XX:MinHeapFreeRatio=percentage as a whole number 修改垃圾回收之后堆中可用內(nèi)存的最小百分比,缺省值是40。如果垃圾回收后
7、至少還有 40%的堆內(nèi)存沒有被釋放,則系統(tǒng)將增加堆的尺寸。-XX:MaxHeapFreeRatio=percentage as a whole number 改變垃圾回收之后和堆內(nèi)存縮小之前可用堆內(nèi)存的最大百分比,缺省值為70。這意味著如果在垃圾回收之后還有大于 70%的堆內(nèi)存, 則系統(tǒng)就會減少堆的尺寸。-XX:NewSize=size in bytes為已分配內(nèi)存的對象中的Eden代設(shè)置缺省的內(nèi)存尺寸。它的缺省值是640K。(-server選項(xiàng)把缺省尺寸增加到 2M 。)-XX:MaxNewSize=size in bytes允許您改變初期對象空間的上限, 新建對象所需的內(nèi)存就是從這個(gè)空間中
8、分配來的, 這 個(gè)選項(xiàng)的缺省值是 640K。( -server選項(xiàng)把缺省尺寸增加到2M。)-XX:NewRatio=value改變新舊空間的尺寸比例, 這個(gè)比例的缺省值是 8,意思是新空間的尺寸是舊空間的 1/8。-XX:SurvivorRatio=number改變 Eden 對象空間和殘存空間的尺寸比例,這個(gè)比例的缺省值是10,意思是 Eden 對象空間的尺寸比殘存空間大 survivorRatio+2 倍。-XX:TargetSurvivorRatio=percentage設(shè)定您所期望的空間提取后被使用的殘存空間的百分比, 缺省值是 50。-XX:MaxPermSize=size in M
9、B長久代(permanent generation)的尺寸,缺省值為32 (32MB )。垃圾收集 : 一般設(shè)定-XincgcMac OS X 不支持這個(gè)選項(xiàng),不支持這種訓(xùn)練式的垃圾收集器。-Xnoclassgc禁用類的垃圾收集。-XX:+UseConcMarkSweepGC激活標(biāo)志和清除同時(shí)進(jìn)行的垃圾收集活動(dòng), 這個(gè)選項(xiàng)對多處理器的計(jì)算機(jī)有效。-XX:+UseParallelGC激活并行的垃圾收集活動(dòng), 這個(gè)選項(xiàng)只對多處理器的計(jì)算機(jī)有效。-XX:-DisableExplicitGC忽略代碼中對 System.gc()的顯式調(diào)用。虛擬機(jī)仍然按照正常的機(jī)制進(jìn)行垃圾收集。這 個(gè)選項(xiàng)禁止在代碼中強(qiáng)制
10、執(zhí)行垃圾收集。-XX:+PrintTenuringDistribution打印初期代中已分配內(nèi)存的對象占用內(nèi)存時(shí)間的信息。編譯-Xint只在解釋(interperated)模式下運(yùn)行虛擬機(jī)。如果使用這個(gè)選項(xiàng),系統(tǒng)將不編譯任何字 節(jié)碼。-XX:CompileThreshold=value在編譯開始前改變方法調(diào)用(程序分支)的數(shù)目,缺省值是1000。-XX:-InlineUnreachableCalls缺省情況下,虛擬機(jī)對所有可能的代碼進(jìn)行方法內(nèi)聯(lián)處理(method inlining ) ,以方便編譯器進(jìn)行優(yōu)化。 對這個(gè)選項(xiàng)進(jìn)行設(shè)定會使較少的代碼按照內(nèi)聯(lián)方法被編譯。這樣, 那些正常情況下不會運(yùn)行的
11、代碼, 如例外處理, 就不會被處理為內(nèi)聯(lián)代碼, 而只能在運(yùn)行時(shí)進(jìn)行解釋。 設(shè)定這個(gè)選項(xiàng)可能會大大降低性能。-XX:+CITime顯示有多少時(shí)間花在編譯過的代碼上。-XX:+PrintCompilation在Java的方法被編譯時(shí),打印其的跟蹤信息。Threading-XX:NewSizeThreadIncrease=size in KB允許您指定每個(gè)活動(dòng)線程會增加多少初期對象空間。 這個(gè)選項(xiàng)在調(diào)節(jié)由于線程增加而增 加的分配率時(shí)可能會有用。它的缺省值為16(16 kilobytes )。-XX:ThreadStackSize=size in KB 改變線程棧的大小。缺省情況下,線程棧的大小就是操
12、作系統(tǒng)所使用的棧的缺省大小。-XX:+UseTLAB激活線程本地的分配緩沖區(qū)。 使用這個(gè)緩沖區(qū)將使線程任務(wù)繁重的應(yīng)用程序的內(nèi)存分 配更加具有可擴(kuò)展性,大大提高內(nèi)存分配的性能。這個(gè)選項(xiàng)在多處理器的計(jì)算機(jī)和 Mac OS X Server 上缺省打開。共享-XX:+PrintSharedSpace打開共享的冗長輸出。-XX:-UseSharedSpaces關(guān)閉共享。附上經(jīng)典文章 :JVM 性能調(diào)整的一些基本概念By kevinwu on February 5, 2007 6:51 PM | No Comments | No TrackBacks作者 徐永久本文是我在工作中調(diào)整 Solaris 8
13、上的 WebLogic 6.0SP2 中遇到諸多問題后, 查閱相關(guān)資料 而產(chǎn)生的一些概念, 羅列出來, 或許對您有所幫助。 這并不代表, 筆者推薦您使用 WebLogic 和 Solaris 的組合,相反,筆者歡迎相關(guān) Tomcat 性能調(diào)整方面的心得。 筆者在 Sun Tech Day 上和 Bea 公司的相關(guān)人員討論后, 認(rèn)為 Bea 對 Open Source 和 Free Software 缺乏必要的 遠(yuǎn)見。另外,其中一些術(shù)語的翻譯,是我自己的”創(chuàng)作“,我不知道別人是怎樣翻譯的。如果有不 當(dāng)?shù)牡胤?,希望指正。?Heap)是Java程序的對象生活的地方,包含活的對象,死的對象以及剩余內(nèi)
14、存。當(dāng)對象不能被運(yùn)行中的程序的指針?biāo)竭_(dá)時(shí),這些對象成為”垃圾JVM 的堆大小決定了 VM 花費(fèi)在收集垃圾上的時(shí)間和頻度 收集垃圾可以接受的速度與應(yīng)用有關(guān),應(yīng)該通過分析實(shí)際的垃圾收集的時(shí)間和頻率來調(diào)整。 如果堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內(nèi)存的需要一致,完全收集就很快,但是會更加頻繁。調(diào)整堆大小的的目的是最小化垃圾收集的時(shí)間,以在特定的時(shí)間內(nèi)最大化處理客戶的請求。在基準(zhǔn)測試的時(shí)候, 為保證最好的性能, 要把堆的大小設(shè)大, 保證垃圾收集不在整個(gè)基準(zhǔn)測 試的過程中出現(xiàn)。堆劃分為兩個(gè)區(qū)域:新生代和舊生代。新生代又分為:Eden和兩片生存空間(survivo
15、r spaces) o其中保證有一片空間在任何時(shí)間 是空的,當(dāng)垃圾收集發(fā)生時(shí), Eden 中的活的對象復(fù)制到下一片生存空間,對象就在生存 空間之間復(fù)制,直到到達(dá)最大門限值(老化) ,然后復(fù)制到舊生代。Eden 是新的對象分配的地方。很多對象分配以后很快成為垃圾,這些對象稱為具有infant mortality.對象生存的時(shí)間越長,需要的收集時(shí)間也越長,因此,收集變慢。因此, 在編程時(shí), 應(yīng)注意使用對象你的應(yīng)用建立和釋放對象的速度決定了垃圾收集的頻度。的緩沖,而不是新建立對象。大多數(shù)對象在新生代就已經(jīng)死去, 因此你能有效的調(diào)整垃圾收集。 如果你能安排大多數(shù)對象 的生存期小于一個(gè)收集時(shí)間,那么,垃
16、圾收集是十分高效的。錯(cuò)誤的”代“配置會導(dǎo)致頻繁的垃圾收集,影響系統(tǒng)性能。如果系統(tǒng)花費(fèi)很多的時(shí)間收集垃圾,請減小堆大小。一次完全的垃圾收集應(yīng)該不超過 3-5 秒。一般說來,你應(yīng)該使用物理內(nèi)存的 80% 作為堆大小。在最大工作負(fù)荷的時(shí)候,監(jiān)視 WebLogic 的性能。使用 -verbosegc 選項(xiàng)測量有多少時(shí)間和資源用于垃圾收集。打開垃圾收集的詳細(xì)信息輸出以及重定向: % java -ms64m -mx64m -verbosegc -classpath $CLASSPATH-Dweblogic.domain=mydomain -Dweblogic.Name=clusterServer1-Dja
17、va.security.policy=/bea/weblogic6x/lib/weblogic.policy-Dweblogic.management.server=01:7001 -Dweblogic.management.username=system-Dweblogic.management.password=systemPassword weblogic.Server logfile.txt 在 Solaris 系統(tǒng)上,采用下面的命令:weblogic.Server server.out 2&1Java HotSpot VM 選項(xiàng)標(biāo)準(zhǔn)的選項(xiàng)在各種平臺都已經(jīng)有介紹:
18、 /j2se/1.3/docs/tooldocs/win32/java.html/j2se/1.3/docs/tooldocs/solaris/java.html /j2se/1.3/docs/tooldocs/linux/java.html以 -X 開頭的選項(xiàng)都為非標(biāo)準(zhǔn)選項(xiàng)(并不能在所有的 VM 上實(shí)現(xiàn)),在后續(xù)的版本中可能 會不通知而變更。由于 -XX 選項(xiàng)需要特別的系統(tǒng)權(quán)限,因此不建議隨便使用。在 1.3.0 之前的版本, J2SDK 的 Solaris 版本帶有一個(gè)虛擬機(jī)的實(shí)現(xiàn)叫
19、做 Exact VM (EVM ),從 1.3.0 開始這個(gè)虛擬機(jī)被 Java HotSpot VM 所取代。Java HotSpot VM 目前認(rèn)識下面的 -X 選項(xiàng):-Xincgc 使用訓(xùn)練 GC-Xnoincgc不是用訓(xùn)練 GC (缺省)-XX:MaxHeapFreeRatio= 最大堆剩余百分比 (缺省 70)-X:MinHeapFreeRation= 堆最小剩余百分比(缺省40)-Xint 只作解析 (不作 JIT 編譯 )-XX:+UseBoundThreads 綁定用戶級別的線程 (只針對 Solaris)-Xmn 設(shè)置年輕一代的大?。?young generation ) (只
20、對 1.4)對象分配在 Eden,并且在這里死亡, 當(dāng)Eden滿時(shí),引起一個(gè)小的收集 (minor collection ), 一些生存的對象被移動(dòng)到舊生代, 如果舊生代需要收集, 則引起大收集 ( major collection ), 這會比較緩慢。如果 GC 成為瓶頸,那么需要指定代的大小,檢查 GC 的詳細(xì)輸出,研究 GC 參數(shù)對性 能的影響。舊生代的收集采用 mark-compact 的方式,其中的一部分叫做”永久代“ ( permanent generation)很特別,他包括了 JVM自身的所有反映數(shù)據(jù)(reflective data),例如類以及方 法。暫停時(shí)間的含義是應(yīng)用因?yàn)?/p>
21、垃圾收集而顯示出來的短暫停頓。吞吐量的含義是在一段比較長的時(shí)間內(nèi), 沒有用在垃圾收集的時(shí)間和總時(shí)間的百分比。 減少暫停時(shí)間的辦法可以采用小的年輕代和增量收集, 但是這以犧牲吞吐率為代價(jià)。Footprint 是一批工作進(jìn)程的集合,以頁和緩沖行數(shù)計(jì)量,在物理內(nèi)存有限或者有很多處理 器的系統(tǒng)里, footprint 可代表伸縮性。Promptness 是對象死去的時(shí)間和內(nèi)存變?yōu)榭捎脮r(shí)的時(shí)間差,在分布系統(tǒng)中(包括RMI )需要考慮。很大的新生代能提高吞吐率,但是犧牲了 footprint 和 promptness。Solaris 的 footprint 可以采用 pmap 命令來查看。GC 325407K-83000K(776768K), 0.2300771 secsGC 325816K-83372K(776768K), 0.2454258 secsFull
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州師范學(xué)院《資源加工工程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南通理工學(xué)院《造型基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州職業(yè)技術(shù)學(xué)院《客戶關(guān)系管理B》2023-2024學(xué)年第二學(xué)期期末試卷
- 云南財(cái)經(jīng)大學(xué)《資產(chǎn)評估綜合實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧商貿(mào)職業(yè)學(xué)院《社區(qū)管理實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 介紹特產(chǎn)講課件
- 企業(yè)戰(zhàn)略決策中的智慧支持系統(tǒng)建設(shè)
- 吉林農(nóng)業(yè)科技學(xué)院《道路橋梁工程施工技術(shù)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林動(dòng)畫學(xué)院《教師嗓音訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 揭陽職業(yè)技術(shù)學(xué)院《涉外法律英語閱讀2》2023-2024學(xué)年第二學(xué)期期末試卷
- 尿崩癥診療規(guī)范內(nèi)科學(xué)診療規(guī)范診療指南2023版
- 老年法律法規(guī)體系初識 老年服務(wù)與管理法律法規(guī)概述
- 民航服務(wù)溝通PPT完整全套教學(xué)課件
- 【地方政府促進(jìn)鄉(xiāng)村旅游發(fā)展研究文獻(xiàn)綜述3600字】
- 某工業(yè)安裝工程設(shè)備監(jiān)理實(shí)施細(xì)則
- 西安市商品住宅使用說明書
- 西部科學(xué)城重慶高新區(qū)引進(jìn)急需緊缺人才38人模擬檢測試卷【共1000題含答案解析】
- 湖南2022年事業(yè)編招聘考試《職業(yè)能力傾向測驗(yàn)》真題及答案解析【最全版】
- GB 1903.27-2022食品安全國家標(biāo)準(zhǔn)食品營養(yǎng)強(qiáng)化劑低聚半乳糖
- 帶傳動(dòng)教學(xué)課件
- 新護(hù)士五年規(guī)范化培訓(xùn)手冊
評論
0/150
提交評論