当前位置:网站首页>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
边栏推荐
- Rewrite four functions such as StrCmp in C language
- re正则表达式
- Nodejs installation
- C byte array (byte []) and string are converted to each other
- Robocode tutorial 7 - Radar locking
- SSD硬盘SATA接口和M.2接口区别(详细)总结
- A few lines of code teach you to crawl lol skin pictures
- 【ACM】70. climb stairs
- Romance in C language
- 【ACM】509. Fibonacci number (DP Trilogy)
猜你喜欢

Clion installation tutorial

Qtablewidget usage explanation

JD freefuck Jingdong HaoMao control panel background Command Execution Vulnerability

硬核解析Promise對象(這七個必會的常用API和七個關鍵問題你都了解嗎?)

Resolves the interface method that allows annotation requests to be written in postman

Robocode tutorial 3 - Robo machine analysis

WIN1 remote "this may be due to credssp encryption Oracle correction" solution
![解决报错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]

硬核解析Promise对象(这七个必会的常用API和七个关键问题你都了解吗?)

JD-FreeFuck 京东薅羊毛控制面板 后台命令执行漏洞
随机推荐
C language array processing batch data
PowerDesigner various font settings; Preview font setting; SQL font settings
MySQL_ 01_ Simple data retrieval
Cells in rust share variable pointers
Nodejs installation
Selenium + webdriver + chrome realize Baidu to search for pictures
Jenkspy package installation
Stanford machine learning course summary
Dynamically add default fusing rules to feign client based on sentinel + Nacos
14个py小游戏源代码分享第二弹
Pyppeter crawler
Scikit learn sklearn 0.18 official document Chinese version
Svn simple operation command
WIN1 remote "this may be due to credssp encryption Oracle correction" solution
Refcell in rust
【ACM】70. 爬楼梯
journal
【ACM】70. climb stairs
Dock installation redis
读取excel,int 数字时间转时间