GC调优

一般情况下,不需要进行GC调优。需要GC调优情况绝大部分是由于代码造成的,因此,绝大部分情况下,我们需要做的是通过分析GC情况来优化代码。只有在代码及其它途径很难优化,但是又确实存在GC问题时,才考虑GC调优。

GC调优的目的

GC的次数少,GC的时间短,发生Full GC的周期长,时间合理,最好是不发生。

GC调优的步骤

1)、监控应用程序;

2)、分析GC日志;

3)、多次进行GC调优,选择最优方案。

GC调优方案

1)、调整堆的大小;

2)、调整新生代/老年代大小;

3)、更换垃圾回收器等。

举例(项目启动,我使用的jdk1.7

【设置JVM参数】

1)、未配置参数:

C:\Users\gx>java  -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=16777216 -XX:MaxHeapSize=268435456 -XX:+PrintCommandLineFlags -XX:-UseLargePagesIndividualAllocation
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)

默认为Serial+Serial Old,【JVM中GC参数】,启动日志:

[GC[DefNew: 4410K->512K(4928K), 0.0023930 secs] 4410K->1271K(15872K), 0.0024427 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0032738 secs] 5687K->2197K(15872K), 0.0033081 secs] [Times: user=0.00 sys=0.02, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0023853 secs] 6613K->2704K(15872K), 0.0024200 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0023565 secs] 7120K->3260K(15872K), 0.0023841 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0021887 secs] 7676K->3620K(15872K), 0.0022221 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->458K(4928K), 0.0016813 secs] 8036K->3768K(15872K), 0.0017188 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4874K->370K(4928K), 0.0013817 secs] 8184K->3847K(15872K), 0.0014106 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4786K->512K(4928K), 0.0018112 secs] 8263K->4162K(15872K), 0.0018375 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->511K(4928K), 0.0017868 secs] 8578K->4786K(15872K), 0.0018135 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4891K->512K(4928K), 0.0016345 secs] 9165K->5225K(15872K), 0.0016611 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0016040 secs] 9641K->5543K(15872K), 0.0016278 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0016829 secs] 9959K->5826K(15872K), 0.0017086 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0016739 secs] 10242K->6174K(15872K), 0.0017006 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->511K(4928K), 0.0018503 secs] 10590K->6533K(15872K), 0.0018892 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4927K->511K(4928K), 0.0026044 secs] 10949K->6941K(15872K), 0.0026422 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4927K->511K(4928K), 0.0026480 secs] 11357K->7433K(15872K), 0.0026859 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4927K->499K(4928K), 0.0032100 secs] 11849K->7749K(15872K), 0.0032398 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[INFO] Scanning for projects...
[GC[DefNew: 4915K->512K(4928K), 0.0049933 secs] 12165K->8156K(15872K), 0.0050241 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC[DefNew: 4928K->512K(4928K), 0.0038117 secs] 12572K->8675K(15872K), 0.0038386 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[INFO] 
[INFO] -------------------------< com.su:oracle-demo >-------------------------
[INFO] Building oracle-demo Maven Webapp 0.0.1-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[GC[DefNew: 4928K->512K(4928K), 0.0029919 secs] 13091K->8975K(15872K), 0.0030166 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[INFO] 
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ oracle-demo >>>
[GC[DefNew: 4928K->512K(4928K), 0.0035628 secs] 13391K->9533K(15872K), 0.0035923 secs] [Times: user=0.00 sys=0.00, real&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值