这是同一个web项目在不同启动参数下的启动时间
第二个图片启动参数为:java -Xms10m -Xmx10m -XX:+PrintGCDetails -jar .\demo-0.0.1-SNAPSHOT.jar
第一个图片启动参数为 java -Xms100m -Xmx100m -XX:+PrintGCDetails -jar .\demo-0.0.1-SNAPSHOT.jar
内存增大10倍 消耗时间减少13.5倍
因为堆内存的减少 会导致频繁的触发Full GC
通过GC日志如果发现每次都有新生代晋升老年代 可能是因为新生代的surviver太小引起的 并且 每次gc 会回收大量新生代
此时 应该加大新生代在堆中的占比 而不是使用默认的新生代老年代 1:2的比例 应该减少老年代 增大新生代 这样 尽量让垃圾在新生代被回收 而不是晋升 触发Full GC 因为 Full GC 意味着 Stop the word