当前位置:网站首页>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
边栏推荐
- SSD硬盘SATA接口和M.2接口区别(详细)总结
- Build openstack platform
- Random number generation of C #
- Jenkspy package installation
- Crawl the product data of cicada mother data platform
- What are the relationships and differences between threads and processes
- How to install jsonpath package
- .105Location
- Crawl lottery data
- Mode of interprocess communication
猜你喜欢
随机推荐
Rust: shared variable in thread pool
消费者灰度实现思路
Implementation of object detection case based on SSD
Refcell in rust
Log4j2 cross thread print traceid
Clion installation tutorial
Install the yapiupload plug-in in idea and upload the API interface to the Yapi document
【ACM】509. 斐波那契数(dp五部曲)
读取excel,int 数字时间转时间
Crawl the product data of Xiaomi Youpin app
JD-FreeFuck 京东薅羊毛控制面板 后台命令执行漏洞
Visualization of residential house prices
Arcpy adds fields and loop assignments to vector data
C byte array (byte []) and string are converted to each other
Implement a simple function to calculate the sum of all integers between M ~ n (m < n)
RC smart pointer in rust
Resolve the error Max virtual memory areas VM max_ map_ count [65530] is too low, increase to at least [262144]
解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Scikit learn sklearn 0.18 official document Chinese version
解决允许在postman中写入注释请求接口方法