关于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/118608.html原文链接:https://javaforall.net

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


相关推荐

  • 【转载】读懂IL代码就这么简单(三)完结篇

    【转载】读懂IL代码就这么简单(三)完结篇

    2021年11月21日
    39
  • java 跨站脚本攻击_XSS(跨站脚本攻击)漏洞解决方案

    java 跨站脚本攻击_XSS(跨站脚本攻击)漏洞解决方案首先 简单介绍一下 XSS 定义 一 XSS 介绍 XSS 是跨站脚本攻击 CrossSiteScr 的缩写 为了和层叠样式表 CSS CascadingSty 加以区分 因此将跨站脚本攻击缩写为 XSS XSS 是因为有些恶意攻击者往 Web 页面中插入恶意 Script 代码 当用户浏览该页面时 嵌入的 Script 代码将会被执行 从而达到恶意攻击用户的特殊目的 二 XSS 攻击目

    2025年7月28日
    2
  • 树莓派4B 安装opencv完整教程基于python3(各种错误解决)

    树莓派4B 安装opencv完整教程基于python3(各种错误解决)本人一直在做opencv的项目,需要入手一块树莓派来在移动端跑opencv,所以买了一块树莓派4B,然后安装上了系统,开启了曲折的opencv安装之旅。首先有幸看到子豪兄的视频,还是很好的,所以直接跟着它子豪兄教你在树莓派上安装OpenCV教程安装opencv,但是后来发现各种不可名状的错误,最后发现他的是基于树莓派3B+,环境是python3.5,但是树莓派4B的环境是python4B,所以不…

    2022年6月11日
    61
  • eclipse如何使用svn_eclipse使用svn提交代码步骤

    eclipse如何使用svn_eclipse使用svn提交代码步骤Eclipse,Idea使用SVNEclipse使用SVNEclipse中svn插件安装eclipsemarket在线安装eclipseInstallNewSoftware手动在线安装下载插件安装Eclipse日常使用创建资源库位置清除缓存的用户名密码Eclipse工程中忽略文件Eclipse分享项目工程切换svn分支节点常规操作svnupgradesvn:E155036Eclipse使用SVNEclipse中svn插件安装eclipse对svn的支持力度较小,在比较高的版本中也没有

    2022年9月26日
    2
  • Java 递归、DFS、回溯

    Java 递归、DFS、回溯DFS/回溯算法如果某问题的解可以由多个步骤得到,而每个步骤都有若干种选择(这些候选方案集可能会依赖之前做出的选择),且可以用递归枚举法实现,则它的工作方式可以用解答树来描述。全排列问题输出数字1~N所能组成的所有全排列publicclassA{/***全排列**@paramargs*/staticVector<Integer>vector=newVector<>();s

    2022年7月8日
    18
  • torch.nn.Conv2d详解

    torch.nn.Conv2d详解首先看一下这个类的定义 classConv2d ConvNd 初始化函数 这里主要了解有哪些参数传进来就可以了 def init self in channels int out channels int kernel size size 2 t stride size 2 t 1 padding size 2 t 0 d

    2025年11月14日
    2

发表回复

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

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