性能調優的基本準則(配置在tomcat中喲)
基本原則:
- 減少垃圾回收的次數
- 老年代的空間大于新生代空間
JVM參數配置
JVM提供了諸多的參數進行JVM各個方面記憶體大小的設定,為Java應用進行優化提供了諸多的工具,本文将會詳細分析各個參數的功能與使用。(堆的初始值一定要和最大值相等如果不等的話垃圾回收機制不停的在回收)
常見參數配置
-XX:+PrintGC 每次觸發GC的時候列印相關日志
-XX:+UseSerialGC 串行回收
-XX:+PrintGCDetails 更詳細的GC日志
-Xms 堆初始值
-Xmx 堆最大可用值
-Xmn 新生代堆最大可用值
-XX:SurvivorRatio 用來設定新生代中eden空間和from/to空間的比例.
-XX:NewRatio 配置新生代與老年代占比 1:2
含以-XX:SurvivorRatio=eden/from=den/to
總結:在實際工作中,我們可以直接将初始的堆大小與最大堆大小相等,
這樣的好處是可以減少程式運作時垃圾回收次數,進而提高效率。
-XX:SurvivorRatio 用來設定新生代中eden空間和from/to空間的比例.
堆記憶體大小配置
使用示例: -Xmx20m -Xms5m
說明: 當下Java應用最大可用記憶體為20M, 初始記憶體為5M
// byte[] b = new byte[4 * 1024 * 1024];
// System.out.println(&#