当前位置:网站首页>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
边栏推荐
- Docker 安装 Redis
- Deep learning classic network analysis and target detection (I): r-cnn
- WIN1 remote "this may be due to credssp encryption Oracle correction" solution
- STM32学习记录0008——GPIO那些事1
- Implement a simple function to calculate the sum of all integers between M ~ n (m < n)
- Transfer learning of five categories of pictures based on VGg
- A few lines of code teach you to crawl lol skin pictures
- Map basemap Library
- 解决允许在postman中写入注释请求接口方法
- 消费者灰度实现思路
猜你喜欢
STM32学习记录0008——GPIO那些事1
C language loop structure program
JD-FreeFuck 京东薅羊毛控制面板 后台命令执行漏洞
Robocode tutorial 8 - advanced robot
C medium? This form of
【ACM】70. climb stairs
A few lines of code teach you to crawl lol skin pictures
Docker installation MySQL
Yolov4 pruning [with code]
The vivado project corresponding to the board is generated by TCL script
随机推荐
Cygwin64 right click to add menu, and open cygwin64 here
Operators in C language
Resolves the interface method that allows annotation requests to be written in postman
Rust: shared variable in thread pool
深度学习经典网络解析目标检测篇(一):R-CNN
xlsxwriter. exceptions. Filecreateerror: [errno 13] permission denied
Rust: a simple example of TCP server and client
Cells in rust share variable pointers
Qtablewidget usage explanation
WIN1 remote "this may be due to credssp encryption Oracle correction" solution
powerdesigner各种字体设置;preview字体设置;sql字体设置
Generate verification code
Docker installation MySQL
Batch export ArcGIS attribute table
Linux installs MySQL in RPM (super simple)
Clion installation tutorial
Process management command
软件测试总结
Nanotechnology + AI enabled proteomics | Luomi life technology completed nearly ten million US dollars of financing
Realization of consumer gray scale