[大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Java架构师面试题——JVM性能调优[通俗易懂],希望能够帮助大家进步!!!]
JVM系列
[直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景]
[直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结]
[直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置]
JVM内存调优
对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。
1.Full GC
会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以比较慢,因此应该尽可能减少Full GC的次数。
2.导致Full GC的原因
1)年老代(Tenured)被写满
调优时尽量让对象在新生代GC时被回收、让对象在新生代多存活一段时间和不要创建过大的对象及数组避免直接在旧生代创建对象 。
2)持久代Pemanet Generation空间不足
增大Perm Gen空间,避免太多静态对象 , 控制好新生代和旧生代的比例
3)System.gc()被显示调用
垃圾回收不要手动触发,尽量依靠JVM