关于java的JIT知识

关于java的JIT知识

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

 
1.JIT的工作原理图 


关于java的JIT知识

工作原理

当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码。

通常javac将程序源码编译,转换成java字节码,JVM通过解释字节码将其翻译成相应的机器指令,逐条读入,逐条解释翻译。非常显然,经过解释运行,其运行速度必定会比可运行的二进制字节码程序慢。为了提高运行速度,引入了JIT技术。

在执行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,採用该JIT技术能够,能够接近曾经纯编译技术。

2.相关知识

JIT是just in time,即时编译技术。使用该技术,可以加速java程序的运行速度。

JIT并不总是奏效,不能期望JIT一定可以加速你代码运行的速度,更糟糕的是她有可能减少代码的运行速度。这取决于你的代码结构,当然非常多情况下我们还是可以如愿以偿的。

从上面我们知道了之所以要关闭JITjava.lang.Compiler.disable(); 是由于加快运行的速度。由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这样的情况,当前的JIT仅仅对常常运行的字节码进行编译,如循环等

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118938.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SuperMap 最佳路径分析流程

    SuperMap 最佳路径分析流程学SuperMap也有一段时间了,总结一下软件下载:请到超图技术资源中心:http://support.supermap.com.cn第一步:导入数据第二步:选择数据选择线的时候多选一点线,路径分析最重要的就是路第三步:构建二维网格设置二维网格第四步:测试最佳路径第五步:发布下载:supermap-iserver下载请到超图技术资源中心:http://support.sup…

    2022年8月24日
    12
  • Spring Cloud 学习笔记(1 / 3)「建议收藏」

    SpringCloud学习笔记(2/3)SpringCloud学习笔记(3/3)—01_前言闲聊和课程说明02_零基础微服务架构理论入门03_第二季Boot和Cloud版本选型04_Cloud组件停更说明05_父工程Project空间新建06_父工程pom文件07_复习DependencyManagement和Dependencies08_支付模块构建(上)09_支付模块构建(中)10_支付模块构建(下)11_热部署Devtool

    2022年4月13日
    56
  • matlab根据数据画三维图_matlab导入三组数据画三维图

    matlab根据数据画三维图_matlab导入三组数据画三维图首先先分析对象。将数据利用matlab画出图,最开始是导入数据,然后处理数据,最后将处理的数据画出来。所以我将它分为三个步骤。第一步:导入数据如果是mat数据。可以直接load 如果是txt数据。可以用txtread 如果是excel数据。可以用xlsread详细的,可以参考https://blog.csdn.net/blueskyjian/article/details/728…

    2022年10月11日
    2
  • Deep Learning中的一些Tips详解(RELU+Maxout+Adam+Dropout)「建议收藏」

    Deep Learning中的一些Tips详解(RELU+Maxout+Adam+Dropout)「建议收藏」本文主要讲如果我们的DeepLearning出现了一些不好的结果,我们该怎么去解决。学习前请先参考:反向传播算法(Backpropagation)—-GradientDescent的推导过程。

    2022年4月29日
    59
  • java softReference 详解 .[通俗易懂]

    java softReference 详解 .[通俗易懂]本文介绍对象的强、软、弱和虚引用的概念、应用。1.对象的强、软、弱和虚引用  在JDK1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。

    2025年10月6日
    1
  • 校验和(Checksum)「建议收藏」

    校验和(Checksum)「建议收藏」校验和(Checksum)PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有

    2022年8月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号