JAVA JIT 性能优化

此问题起源于在一次性能测试过程中,为了模拟有大量超时的情况,使用eclipse debug住服务器代码,然后使用jmeter 脚本施加压力。在这个过程当中,发现了一个很有趣的现象,就是性能测试计划执行十分钟,前三分钟左右时确实返回的是超时,平均响应时间在500ms以上,但是突然一下子就降到了8 ms,并且接下来的七分钟都是这个样子的。对这种现象感觉得奇怪,然后就去问了下大牛,解释说是Java JIT。回来后google 了几篇文章,发现JIT 还是个很复杂的玩意儿,所以在这先简单记下,后续再细化相关功能。

JIT 是Just-In-Time Compiliation 的缩写,中文为即时编译。就是JAVA在运行过程中,如果有些动态极度频繁的被执行或者不被执行,就会被自动编译成机器码,跳过其中的部分环节。

  1. Java源码通过编译器转为平台无关的字节码(bytecode)或Java class文件。
  2. 在启动Java应用程序后,JVM会在运行时加载编译后的类并通过Java解释器执行适当的 语义计算。
  3.  当开启JIT时,JVM会分析Java应用程序的函数调用并且(达到内部一些阀值后)编译字节码为本地更高效的机器码。JIT流程通常为最繁忙的函数调用提供更高的优先级。
  4. 一旦函数调用被转为机器码,JVM会直接执行而不是“解释执行”。
  5. 上述过程会在程序运行过程中不断提高性能。

相关的帮助文档:

http://www.importnew.com/5270.html   

http://ifeve.com/hotspot-jit/  

http://blog.csdn.net/hsuxu/article/details/9319969

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值