当前位置:网站首页>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
边栏推荐
- Data stream encryption and decryption of C
- The difference between deep copy and shallow copy
- Crawl the product data of cicada mother data platform
- Nodejs安装
- From introduction to mastery of MATLAB (2)
- C language array processing batch data
- Re regular expression
- Analysez l'objet promise avec le noyau dur (Connaissez - vous les sept API communes obligatoires et les sept questions clés?)
- Multi thread safe reference arc of rust
- String function in MySQL
猜你喜欢
Cygwin64 right click to add menu, and open cygwin64 here
Operators in C language
Auto. JS custom dialog box
GDAL + ogr learning
idea中安装YapiUpload 插件将api接口上传到yapi文档上
硬核解析Promise對象(這七個必會的常用API和七個關鍵問題你都了解嗎?)
Dock installation redis
[UDS unified diagnostic service] (Supplement) v. detailed explanation of ECU bootloader development points (1)
Resolves the interface method that allows annotation requests to be written in postman
Matlab tips (6) comparison of seven filtering methods
随机推荐
MATLAB小技巧(6)七种滤波方法比较
Differences between SSD hard disk SATA interface and m.2 interface (detailed summary)
JD-FreeFuck 京東薅羊毛控制面板 後臺命令執行漏洞
Re expression régulière
Classes and objects
Docker 安装 Redis
Flash - Middleware
Resolves the interface method that allows annotation requests to be written in postman
Re regular expression
Qtablewidget usage explanation
Implementation of object detection case based on SSD
I / O multiplexing and its related details
What are the relationships and differences between threads and processes
Climbing watermelon video URL
【ACM】509. Fibonacci number (DP Trilogy)
[UDS unified diagnostic service] (Supplement) v. detailed explanation of ECU bootloader development points (2)
由tcl脚本生成板子对应的vivado工程
positioner
Rust: how to implement a thread pool?
Crawl lottery data