深入理解java虚拟机学习笔记(八)--晚期(运行期)优化_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 深入理解java虚拟机学习笔记(八)--晚期(运行期)优化

深入理解java虚拟机学习笔记(八)--晚期(运行期)优化

 2013/8/25 21:55:51  lg70124752  程序员俱乐部  我要评论(0)
  • 摘要:第十一章晚期(运行期)优化1、HotSpot同时包含解释器和编译器,HotSpot中内置了两个即时编译器ClientCompiler和ServerCompiler或简称C1和C2编译器(也叫Opto编译器)。用户可以使用-client或-server参数支强制指定虚拟机运行在Client模式还是Server模式。解释器与编译器搭配使用的方式在虚拟机中被称为“混合模式”(MixedMode),用户可以使用-Xint强制虚拟机运行于“解释模式”(InterpretedMode)
  • 标签:笔记 学习 运行 Java 理解 优化 虚拟机 学习笔记
第十一章 晚期(运行期)优化
1、HotSpot同时包含解释器和编译器,HotSpot中内置了两个即时编译器Client Compiler 和 Server Compiler或简称C1和C2编译器(也叫Opto编译器)。用户可以使用-client或-server参数支强制指定虚拟机运行在Client模式还是Server模式。解释器与编译器搭配使用的方式在虚拟机中被称为“混合模式”(Mixed Mode),用户可以使用-Xint强制虚拟机运行于“解释模式”(Interpreted Mode),这时候编译器完全不介入工作,全部代码都使用解释方式执行。另外也可以使用参数-Xcomp强制虚拟机运行于“编译模式”(Compiled Mode),这时候将优先彩编译方式执行程序,但是解释器仍然要在编译无法进行的情况下介入执行过程,可能通过虚拟机的-version命令的输出结果显示出这三种模式。
2、为了在程序启动响应速度与运行效率之间达到最佳地平衡,HotSpot虚拟机将会逐渐雇用分层编译(Tiered Compilation)的策略。分层编译根据编译器编译、优化的规模与耗时,划分出不同的编译层次,其中包括:
第0层:程序解释执行,解释器不开启性能监控功能(profiling),可触发第1层编译。
第1层:也称为C1编译,将字节码编译为本地代码,进行简单可靠的优化,如有必要将加入性能监控的逻辑。
第2层:也称为C2编译,也是将字节码编译为本地代码,但是会启用一些编译耗时较长的优化,甚至会根据性能监控信息进行一些不可靠的激进优化。
Tiered Compilation 的概念在JDK1.6时期出现,但JDK1.7之前需要使用-XX:+TieredCompilation参数来手动开启,如果不开启分层编译策略,而虚拟机又运行在Server模式,Server Compiler需要性能监控发售提供编译依据,则可以由解释器收集性能监控信息供Server Compiler使用。
发表评论
用户名: 匿名