美文网首页
程序编译和代码优化

程序编译和代码优化

作者: hlchengzi | 来源:发表于2019-03-26 13:42 被阅读0次

    早期(编译期)优化

    java泛型

    在java中,泛型方法在编译之后,生成的class文件里面保存的是原生类型。

    晚期(运行期)优化

    java程序最初是通过解释器进行解释执行的,当某个方法或者代码块的运行特别频繁时,就会将这些代码认定为热点代码。为了提高这些热点代码的执行效率,在运行时侯会将这些代码编译为和平台无关的机器码,并进行各种层次的优化,完成这个任务的编辑器被称为即时编译器

    11.2HotSpot虚拟机内的即时编辑器

    解释器与编译器

    解释器:迅速启动和执行
    编译器:将代码转化为本地代码,获取更高的执行效率
    HotSpot虚拟机里面内置两个即时编译器,分别称为Client Compiler和Server Compiler

    11.2.2编译对象和触发条件,在上文当中已经提到会被即时编译器编译的“热点代码主要分为两类”1,被多次调用的方法。2.被多次执行的循环体

    判断一段代码是不是热点代码,是不是需要触发即时编译,这样的行为称为热点探测,主要由两种:
    1,基于采样的热点探测:周期性的检查虚拟机的栈顶,若一个或者某些方法经常出现在栈顶
    2,基于计数器的热点探测:建立计数器,设置阀值。
    而Hotpost主要采用的时第二种--因此它为每个方法准备了两种计数器:方法调用计数器(client是1500次,server模式下是10000次)和回边计数器(他的作用是统计一个方法当中循环体代码执行的次数)

    相关文章

      网友评论

          本文标题:程序编译和代码优化

          本文链接:https://www.haomeiwen.com/subject/vajivqtx.html