码迷,mamicode.com
首页 > 其他好文 > 详细

程序编译与代码优化 -- 早期(编译期)优化

时间:2018-06-07 17:05:56      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:编译   做了   javac   静态   nbsp   集中   gcj   提前   就是   

1. 概述

Java编译器可能是指一个前端编译器(其实叫“编译器的前端”更准备一些),把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器,Ahead Of Time Compiler)直接把*.java文件编译成本地机器代码的过程。例如:

  • 前端编译器:Sun的javac,Eclipse JDT中的增量式编译器(ECJ);
  • JIT编译器:HotSpot VM的C1、C2编译器;
  • AOT编译器:GUN Complier for the Java(GCJ),Excelsior JET;

本章我们主要针对javac编译器。

需要注意的是javac这类编译器对代码的运行效率几乎没有任何优化措施。虚拟机设计团队把对性能的优化集中到了后端的即时编译器中,这样可以让那些不是由javac产生的Class文件也同样能享受到编译器优化所带来的好处。

但是javac做了许多针对java语言编码过程的优化措施来改善程序员的编码风格和提高编码效率。相当多新生的Java语法特性,都是靠编译器的“语法糖”来实现,而不是依赖虚拟机的底层改进来支持,可以说,Java中即时编译器在运行期的优化过程对于程序运行来说更重要,而前端编译器在编译期的优化过程对于程序编码来说关系更加密切。

2. Javac编译器

javac编译器本身就是一个由Java语言编写的程序。

 

程序编译与代码优化 -- 早期(编译期)优化

标签:编译   做了   javac   静态   nbsp   集中   gcj   提前   就是   

原文地址:https://www.cnblogs.com/lujiango/p/9151534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!