当前位置:网站首页>Interpretation and compilation of JVM
Interpretation and compilation of JVM
2022-04-23 18:14:00 【The hunter is eating meat】
1、 principle
Bytecode cannot be directly handed over to hardware for execution. Virtual machine is required translate become Machine code To perform ,“ translate ” There are two strategies : Explain to perform and Compile implementation , also called Just in time compilation (JIT).
-
Explain to perform,- Run bytecode in interpreted mode ,
- Explanation execution means Read a sentence , Execute a sentence .
Advantage is Fast start-up efficiency ,
The disadvantage is that The overall execution speed is slow . -
Compile implementation,- Compile bytecode into machine code
- Execute machine code directly
- Compile at run time
- After compiling , There's an order of magnitude improvement in performance .
Its characteristics are opposite to interpretation and execution , Slow start , Fast execution .
stay jvm In the virtual machine, the two are mixed , There are both interpretation execution and compilation execution . First of all Explain to perform , Execute all bytecodes one by one , If JVM If a method is found to be called frequently, it will be compiled with the strategy of compilation and execution , Call the machine code directly the next time , This method is called Hot methods , thus it can be seen , Compile implementation Is in terms of method .
From a business perspective , The server and the client have different requirements for the execution speed and startup speed of the code .
such as , Mobile applications , Users want the program to start faster .
The server program , There may be higher requirements for the execution speed of the program .
So , from java7 Start , HotSpot Layered compilation is adopted , That is, two compilers are introduced :C1、C2.
C1 compiler , be called client compiler , For clients that require startup performance , Compilation period , The optimization strategy is simple ;
C2, be called Serve compiler , Server side with peak performance requirements , Long compilation time , The optimization strategy is complex .
Specifically, when compiling hotspot methods , First use C1 compiler , The hotspot method in the hotspot will be C2 The compiler compiles again .
2、JVM Related parameters
-Xint : Explain the pattern , Do not activate JIT compiler ( namely CompileThreshold=0).
-Xcomp : Compile mode , Appoint JVM Compile all bytecodes into local code when used for the first time .( namely CompileThreshold=1).
explain :comp:Compile
-Xmixed : Mixed mode execution ,-Xint、-Xcomp Two mixed use , That is, the interpretation mode and Compile mode A mixture of .
-Xbatch : Compile methods in the foreground , The method cannot execute until the compilation is complete .
-XX:CICompilerCount=n : Appoint JIT The number of threads the compiler uses to compile methods .
-XX:CompileThreshold=n : Specifies the number of calls to a method , In order to make HotSpot and JIT The compiler can compile it .
3、JVM Three models of
int Pattern : use -Xint Turn on , namely Explain the pattern , In this mode, all take the interpretation mode to run .
comp Pattern : use -Xcomp Turn on , In this mode, notify JVM close Explain the pattern , use Compile mode function . But it often leads to poor automatic optimization .
mixed Pattern : use -Xmixed Turn on , Namely, mixed operation mode , It's also Hotspot Default mode .
版权声明
本文为[The hunter is eating meat]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210611118516.html
边栏推荐
- Identification verification code
- Romance in C language
- Nodejs installation
- 硬核解析Promise對象(這七個必會的常用API和七個關鍵問題你都了解嗎?)
- Crawl the product data of cicada mother data platform
- MySQL_ 01_ Simple data retrieval
- Cells in rust share variable pointers
- Serialization scheme of serde - trust
- Robocode tutorial 8 - advanced robot
- Generate verification code
猜你喜欢

Solution to Chinese garbled code after reg file is imported into the registry

Batch export ArcGIS attribute table

GDAL + ogr learning

Nodejs安装

JD freefuck Jingdong HaoMao control panel background Command Execution Vulnerability

QT reading and writing XML files (including source code + comments)

Solving the problem of displaying too many unique values in ArcGIS partition statistics failed

Quantexa CDI(场景决策智能)Syneo平台介绍
![解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]](/img/5f/a80951777a0473fcaa685cd6a8e5dd.png)
解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

多功能工具箱微信小程序源码
随机推荐
串口调试工具cutecom和minicom
C network related operations
Batch export ArcGIS attribute table
Pointers in rust: box, RC, cell, refcell
Linux installs MySQL in RPM (super simple)
idea中安装YapiUpload 插件将api接口上传到yapi文档上
软件测试总结
How to install jsonpath package
Pyppeter crawler
Auto. JS custom dialog box
Implement a simple function to calculate the sum of all integers between M ~ n (m < n)
Solution to Chinese garbled code after reg file is imported into the registry
re正則錶達式
Docker installation MySQL
Crack sliding verification code
Operators in C language
Basic usage of crawler requests
Arcpy adds fields and loop assignments to vector data
Multi thread safe reference arc of rust
Nodejs安装