JVM调优分享-(调优的关键点)

实用JVM参数介绍


1. JIT编译参数

jit(just -in-time) ,可以在运行时将字节器编译成本地代码。从而提高代码的执行效率

-XX:CompileThreshold为编译的阀值。当程序的调用次数超过这个阀值时,JIT会将字节码编译成本地机器码。

在Client的模式下,默认值是1500

在server下,默认值是10000

在运行时,可以使用-XX:PrintCompilation来打印出JIT编译的信息哦


2. 堆快照

获得程序堆快照文件的方法

添加参数-XX:+HeapDumpOnOutOfMemoryError,让系统出现OutOfMemoryError时将当时JVM内所有heap dump出来

例:

在程序OOM时,把堆快照文件导出到d盘的test.prof文件中

   -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=d:\test.prof。

导出以后,就可以直接使用JDK自带的visual vm查看分析,查看方法,看之前的博客

如何分析DUMP日志 http://blog.csdn.net/qinghua9/article/details/17166263


3. 错误处理

在系统发生错误时,虚拟机可以在错误发生时同时执行一段脚本,

例:

在程序OOM时执行jstack,导出当时的线程,以便查询问题

 -XX:OnOutOfMemoryError =jstack %p > d:/threads.log


4. 获得GC信息

获得实时的GC信息,是最快的排除方法之一了

使用–verbose:gc 或者 -XX:PrintGC可以输出具体的GC信息

如果需要更详细的,则可以使用

-XX:PrintGCDetail 可以查看到分代GC的相关信息

如果想看到GC发生的时间,再改为

-XX:PrintGCTimeStamps,可以看到很详细的GC发生的时间了


另外如果你看想看更详细的,如年轻代对象晋升到老年代的年龄。

则可以使用-XX:PrintTenuringDistribution查看


6. 控制GC

-XX:+DisableExplicitGC  可以用于禁止显示的GC操作,如:如果在程序中使用System.gc时,full gc 会变成young gc.

可以防止开发人员,或者第三方框架使用显示GC时造成的性能下降

便 -XX:+DisableExplicitGC 与 NIO的direct memory 一起配合使用时得注意。

RednaxelaFX的文章介绍

http://hllvm.group.iteye.com/group/topic/27945%EF%BC%89%E3%80%82


7. 选择类校验器

JDK1.6中有两类校验器可以使用,可以使用参数-XX:-UseSplitVerifier来指定使用旧的校验器哦




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值