当前位置:  开发笔记 > 编程语言 > 正文

Java 6在JDK,JVM或两者中的性能都有所改进吗?

如何解决《Java6在JDK,JVM或两者中的性能都有所改进吗?》经验,为你挑选了1个好方法。

我一直想知道Java SE 6中吹捧的性能改进 - 它是在编译器还是运行时?换句话说,由JDK 6编译的Java 5应用程序是否会在JSE 5下看到改进运行(表明改进的编译器优化)?JDK 5编译的Java 5应用程序是否会在JSE 6下看到改进运行(表明改进的运行时优化)?

我注意到,在完全相同的代码库下,JDK 6下的编译几乎是JDK 5下的两倍.我希望至少有一些额外的时间花在编译器优化上,希望能够带来更高性能的JAR和WAR.Sun的JDK信息并没有真正详细说明他们所做的性能改进 - 我认为它有点来自A栏,有点来自B栏,但我想知道哪个是更大的影响力.有谁知道在JDK 6和JDK 5上做过的任何基准测试?



1> Tom Hawtin -..:

从Java源代码到字节码编译的javac几乎不做任何优化.实际上,优化通常会使代码实际上运行得更慢,因为更难分析以便以后进行优化.

生成的1.5和1.6代码之间唯一的显着区别是,使用-target 1.6添加有关堆栈状态的额外信息,以便更轻松,更快地进行验证(Java ME也可以这样做).这只会影响类加载速度.

真正的优化部分是将字节码编译为本机代码的热点编译器.甚至在某些更新版本上也会更新.在Windows上,默认情况下,较慢的客户端C1版本的热点在JRE中分发.服务器C2热点运行得更快(在java命令行上使用-server),但启动速度较慢并且使用更多内存.

库和工具(包括javac)有时也会完成优化工作.

我不知道你为什么发现JDK 6编译代码比JDK 5慢.在设置方面有一些细微的差别吗?

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有