不適當的JVM參數設置往往會導致我們的java應用出現故障或者性能問題,下面簡述了幾點優化方向。
減少GC時間
-
調整內存設置控制垃圾收集頻率
通過分析出現Full GC的原因適當調整各類型堆空間容量。
-
選擇合適的收集器降低延遲
根據應用使用場景選擇最合理的垃圾收集器。可以參考JVM技術點速記 | 垃圾收集與內存分配。
升級JDK版本
JDK每一代新的版本都有一定量的性能提升,如果爲了追求性能應該選擇力所能及的JDK版本並且關注代碼兼容性。
代碼優化
這個可以優化或者可能導致性能問題的地方太多了,這裏先列舉幾點。
- 不恰當的
System.gc()
調用。 - 不恰當的數據結構使用降低了空間利用率。
編譯時間優和類加載時間的優化
-
禁止字節碼驗證
如果你的代碼是經過測試的穩定版本,可以通過禁止類型驗證器來降低啓動時間,通過參數
-Xverify:none
-
使用服務端模式
使用重量級的服務端及時編譯器可以帶來性能提升,但是會降低程序啓動速度。