談談java虛擬機中的參數。




1.最簡單的一個GC參數是:-XX:+PrintGC(使用這個參數啓動虛擬機後,只要遇到這個GC,就會打印日誌)

2.-XX:+PrintReferenceGC(用來跟蹤系統內的(softReference)軟引用,(weadReference)弱引用,(phantomReference)虛引用,顯示引用過程)

3.使用參數-XX:+TraceClassUnloading和參數-XX;+TraceClassLoading執行代碼,跟蹤類的加載和卸載過程。

4.使用參數-XX:+PrintVMOptions可以在程序運行時,打印虛擬機接收到的命令行顯式參數。

5.參數-XX:+PrintCommandLineFlags可以打印傳遞給虛擬機的顯示和隱式參數,隱式參數未必是通過命令行直接給出的,它可能是由虛擬機啓動時自行設置的。

6.使用-XX:+PrintFlagsFinal打印所有的系統參數的值。

7.-Xmx32m(系統最大可用堆空間爲32m)

8.參數-Xmn可以用於設置新生代的大小,設置一個較大的新生代會減小老年代的大小,這個參數對系統性能以及GC行爲有很大的影響。新生代的大小一般設置爲整個堆空間的1/31/4左右。

9.參數-XX:SurvivorRatio用來設置新生代中eden空間和from/to空間的比例關係如:-XX:SurvivorRatio=eden/from=eden/to

10.-XX:NewRatio=老年代/新生代

11.直接內存配置時,最大可用直接內存可以使用參數-XX:MaxDirectMemorySize設置,如不設置,默認值爲最大堆空間,即-Xmx。當直接內存使用量打到-XX:MaxDirectMexmorySize時就會觸發垃圾回收,如果垃圾回收不能有效釋放足夠空間,直接內存溢出依然會引起系統的OOM

12.-client,-server 
這兩個參數用於設置虛擬機使用何種運行模式,client 模式啓動比較快,但運行時性能和
內存管理效率不如 server 模式,通常用於客戶端應用程序。相反,server 模式啓動比 client
慢,但可獲得更高的運行性能。 

13.直接內存讀寫速度快但是在內存申請方面沒有優勢,堆內存讀寫速度慢與直接內存但是在內存申請方面強。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章