JAVA JIT 性能优化
2014-10-07 20:14
176 查看
此问题起源于在一次性能测试过程中,为了模拟有大量超时的情况,使用eclipse debug住服务器代码,然后使用jmeter 脚本施加压力。在这个过程当中,发现了一个很有趣的现象,就是性能测试计划执行十分钟,前三分钟左右时确实返回的是超时,平均响应时间在500ms以上,但是突然一下子就降到了8 ms,并且接下来的七分钟都是这个样子的。对这种现象感觉得奇怪,然后就去问了下大牛,解释说是Java JIT。回来后google 了几篇文章,发现JIT 还是个很复杂的玩意儿,所以在这先简单记下,后续再细化相关功能。
JIT 是Just-In-Time Compiliation 的缩写,中文为即时编译。就是JAVA在运行过程中,如果有些动态极度频繁的被执行或者不被执行,就会被自动编译成机器码,跳过其中的部分环节。
Java源码通过编译器转为平台无关的字节码(bytecode)或Java class文件。
在启动Java应用程序后,JVM会在运行时加载编译后的类并通过Java解释器执行适当的 语义计算。
当开启JIT时,JVM会分析Java应用程序的函数调用并且(达到内部一些阀值后)编译字节码为本地更高效的机器码。JIT流程通常为最繁忙的函数调用提供更高的优先级。
一旦函数调用被转为机器码,JVM会直接执行而不是“解释执行”。
上述过程会在程序运行过程中不断提高性能。
相关的帮助文档:
http://www.importnew.com/5270.html http://ifeve.com/hotspot-jit/ http://blog.csdn.net/hsuxu/article/details/9319969
JIT 是Just-In-Time Compiliation 的缩写,中文为即时编译。就是JAVA在运行过程中,如果有些动态极度频繁的被执行或者不被执行,就会被自动编译成机器码,跳过其中的部分环节。
Java源码通过编译器转为平台无关的字节码(bytecode)或Java class文件。
在启动Java应用程序后,JVM会在运行时加载编译后的类并通过Java解释器执行适当的 语义计算。
当开启JIT时,JVM会分析Java应用程序的函数调用并且(达到内部一些阀值后)编译字节码为本地更高效的机器码。JIT流程通常为最繁忙的函数调用提供更高的优先级。
一旦函数调用被转为机器码,JVM会直接执行而不是“解释执行”。
上述过程会在程序运行过程中不断提高性能。
相关的帮助文档:
http://www.importnew.com/5270.html http://ifeve.com/hotspot-jit/ http://blog.csdn.net/hsuxu/article/details/9319969
相关文章推荐
- JAVA JIT 性能优化
- Java 性能优化系列之3.2[JVM调优] --- JIT即时编译
- java的性能优化网站
- 谈Java程序的性能优化
- [转载] Java 性能优化技巧集锦 (6)
- Java 性能优化技巧集锦 (3)
- Java 性能优化技巧集锦 (2)
- Java性能优化技巧集锦
- Java 性能优化技巧集锦 (1)
- [转载]Java 性能优化技巧集锦(4)
- [转载] Java 性能优化技巧集锦(3)
- Java 性能优化技巧集锦 (5)
- Java程序性能和速度优化实例
- Java 性能优化技巧
- 以小博大 Java性能优化技巧集锦
- [转载]Java 性能优化技巧集锦 (5)
- 漫谈Java程序的性能优化
- Java 性能优化技巧集锦
- Java性能优化技巧集锦(转贴)
- java 性能优化