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/3到1/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.直接內存讀寫速度快但是在內存申請方面沒有優勢,堆內存讀寫速度慢與直接內存但是在內存申請方面強。