JVM的mixed mode
最近在做flutter相关的项目,flutter指令在执行时会报java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
的异常,系统中使用的是jdk 14,而jdk1.8之后删除了很多jar包,因此 flutter在jdk1.8之后不能正常使用,要么去下载很多依赖包,要么把jdk 切换为jdk1.8的,而我选择了后者,因为不确定去下载很多依赖包后会不会产生异常或者需要新的依赖包的问题,选择直接下载jdk1.8安装,然后把操作系统的jdk切换为jdk1.8更方便,切换为jdk1.8也很简单,只需要把环境变量JAVA_HOME改为jdk1.8的路径即可。
jdk 1.8安装完成后且环境变量更新完成后,使用java -version
确认java 8是否安装成功:
java -version
输出:
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)
往常每次使用java -version
这个命令时只注意java的版本号,但是这次注意到了第三行中的mixed mode
,因为最近学习到Dart VM也是支持JIT和AOT混合模式的,于是就多关注了下JDK这里的mixed mode
。
其实这里的mixed mode
就是指JVM的工作模式是混合模式,混合模式是JVM的默认工作模式,即JVM同时使用解释模式和编译模式。对于字节码中多次被调用的部分,JVM会将其编译成本地代码以提高执行效率;而被调用很少(甚至只有一次)的方法在解释模式下执行,从而减少编译和优化成本。JIT编译器在运行时会创建方法使用文件,然后一步一步的优化每一个方法,有时候会主动的优化应用的行为。这些优化技术,比如积极的分支预测(optimistic branch prediction),如果不先分析应用就不能有效的使用。这样将频繁调用的部分代码提取出来,编译成本地代码,也就是在应用中构建某种热点(即HotSpot,这也是HotSpot JVM名字的由来)。使用混合模式可以获得最好的执行效率。
在命令行中输入:java -X,
可以看到输出:
-Xmixed 混合模式执行 (默认)-Xint 仅解释模式执行...
可以看到 mixed 是JVM默认的工作模式。
更多可参考:
关于JVM的类型和模式
JVM的mixed mode相关推荐
- JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC
GC分代: MinorGC MajorGC FullGC Mixed GC MinorGC 也叫新生代GC:发生在新生代的垃圾回收,因为新生代的特点,MinorGC非常频繁,且回收速度比较快,每次回收 ...
- jvm调优工具_JVM性能调优监控工具jps、jstack、jmap、jhat、hprof使用详解
来自:ITeye博客, 作者:Josh_Persistence 链接:https://www.iteye.com/blog/josh-persistence-2161848 现实企业级Java应用开发 ...
- JVM 出了问题 EXCEPTION_ACCESS_VIOLATION
2019独角兽企业重金招聘Python工程师标准>>> # # An unexpected error has been detected by Java Runtime Envir ...
- java 自带thread分析工具_java自带的jvm分析工具
这段时间觉得很有必要对java的内存分析工具进行熟悉,这样以后出现机器负载较高,或者反应很慢的时候,我就可以查找原因了.上网搜了搜,发现下面这些是比较常用的,然后我在机器上试试了,把结果也贴出来哈. ...
- 教你如何通过分析GC日志来进行JVM调优
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 不同的垃圾收集器产生的GC日志大致遵循了同一个规则,只是有 ...
- 一篇能涨薪水的JVM调优,分析文章
文章目录 JVM发展史 一,历代JDK新特性介绍 1996年 SUN JDK 1.0 Classic VM 1997年 JDK1.1 发布 1998年 JDK1.2 Solaris Exact VM ...
- 炸了!一口气问了我18个JVM问题!
young gc.old gc.full gc.mixed gc 傻傻分不清? 这个问题的前置条件是你得知道 GC 分代,为什么分代.这个在之前文章提了,不清楚的可以去看看. 现在我们来回答一下这个问 ...
- 原来书中说的JVM默认垃圾回收器是错的!
来自:码匠笔记 JDK 8 到底默认用的是哪款 GC 收集器? 为啥是 JDK8?不是 9 也不是 10?因为 JDK8 还是市场占有率最高的,所以针对这个版本我做了深入的探索. <深入理解 J ...
- Error:could not open'C:\Porogram Files\Java\jrelib\j386\jvm.cfg'
Error:could not open'C:\Porogram Files\Java\jrelib\j386\jvm.cfg'之解决方法 不知道什么原因,反正重装完后javac -version能查 ...
最新文章
- 实名羡慕!蚂蚁员工激励达 1376.9 亿,人均能在杭州买套 283 平的房子?
- constraintlayout布局新特性_安卓ConstraintLayout布局
- php的server和location,3、Nginx关于server块和location块的配置
- Android .so .aar..jar文件的使用方式
- mysql+where+且,MySQL WHERE
- 在Tomcat上跑东西时遇到的对我这样新手来说很难找到的问题
- Leetcode PHP题解--D6 595. Big Countries
- 机器学习之线性代数总结
- 数据结构:将二叉搜索树转换成一个排序的双向链表
- mysql exists依赖查询_MySQL EXISTS 和 NOT EXISTS 子查询
- GO语言学习之路10
- 上岸后如何选择一个好的导师
- (已拿offer)2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)...
- html5 预渲染,VUE预渲染及遇到的坑_情愫_前端开发者
- 前端博站项目中遇到的问题总结
- 计算机英语口语app,最实用五大英语口语app,强烈推荐
- Can not set java.util.Date field *** to java.time.LocalDateTime解决办法
- STM32数据手册中的ADC12、ADC123
- PO、VO、DO、TO、DTO、 BO、 QO、DAO、POJO
- Excel应用{数据加工与公式函数}