当前位置:网站首页>Shangsilicon Valley JVM Chapter 1 class loading subsystem
Shangsilicon Valley JVM Chapter 1 class loading subsystem
2022-07-07 03:13:00 【A lazy bug】
1、 Virtual machine introduction
The so-called virtual machine (Virtual Machine), It's just one
Virtual computers
. It's aSoftware
, Used to execute a series of virtual computer instructions . Broadly , Virtual machines can be divided intoSystem virtual machine
andProgram virtual machine
.
- big-name Virtual Box,VMware It belongs to the system virtual machine , They are all simulations of physical computers , It provides a software platform that can run a complete operating system .
- A typical example of a program virtual machine is Java virtual machine , It's designed to execute a single computer program , stay Java The instructions executed in the virtual machine are called Java Bytecode instruction .
- Whether it's a system virtual machine or a program virtual machine , The software running on it is limited to the resources provided by the virtual machine .
2、Java virtual machine
- Java A virtual machine is an execution machine Java Bytecode virtual computer , It has an independent operating mechanism , It runs Java Bytecode may not be created by Java Language compilation .
- JVM Various languages of the platform can be shared Java The cross platform nature of virtual machine 、 Excellent garbage collector , And a reliable just in time compiler .
- Java The core of technology is Java virtual machine (JVM,Java Virtual Machine), Because of all the Java The program is running in Java Inside the virtual machine .
- Java Virtual machine is the running environment of binary bytecode , Responsible for loading bytecode into its interior , explain / Compile to execute machine instructions on the corresponding platform . Every one of them Java Instructions ,Java There are detailed definitions in the virtual machine specification , How to get the operands , How to deal with operands , Where is the result of the treatment .
3、JVM Overall structure
HotSpot VM
It is one of the representative works of high performance virtual machine on the market .- It uses an interpreter and just in time compiler architecture .
- In today's ,Java The performance of the program has been completely changed , Have reached the point where you can and C/C++ The program is higher and lower .
- The execution engine consists of three parts :
Interpreter
,Just in time compiler
,Garbage collector
4、JVM Architectural model
Java The flow of instructions input by the compiler is basically a Stack based instruction set architecture , Another instruction set architecture is Register based instruction set architecture . say concretely : The difference between the two architectures :
Based on the characteristics of plank structure
- Simpler design and Implementation , For systems with limited resources
- Avoid the problem of register allocation : Use zero address instruction to assign
- Most of the instructions in the instruction stream are zero address instructions , Its execution depends on Stack operation . The instruction set is smaller , The compiler is easy to implement
- No hardware support required , Better portability , Better Cross platform implementation
Based on the characteristics of register architecture
- The typical application is x86 The binary instruction set of : Like traditional PC as well as Android Of Davlik virtual machine .
- Instruction set architecture Rely entirely on hardware , High coupling with hardware , Poor portability
- Better performance and more efficient execution
- Spend less instruction to complete an operation
- In most cases , The instruction set based on register architecture usually uses one address instruction 、 Two address instructions and three address instructions are the main , The instruction set based on the stack architecture is mainly zero address instruction
5、 summary
- Because of the cross platform design ,Java The instructions of are designed according to the stack . Different platforms CPU Different architectures , So it can't be designed as register based . The advantage is cross platform , Instruction set is small , The compiler is easy to implement , The disadvantage is that the performance is reduced , More instructions are needed to implement the same function
- today , Although embedded platforms are no longer Java The mainstream running platform of the program ( To be exact, it should be HotSpot VM Our host environment is no longer limited to embedded platforms ), So why not change the architecture to register based architecture ?
- Because stack based architecture Good cross platform 、 Instruction set is small , Although compared with register based architecture , Stack based architecture compiles more instructions , The execution performance is not as good as register based architecture , But considering its Cross platform and portability , We still choose the stack architecture
边栏推荐
- Simple bubble sort
- HDU 4337 King Arthur's Knights 它输出一个哈密顿电路
- Optimization of application startup speed
- Use of promise in ES6
- mos管实现主副电源自动切换电路,并且“零”压降,静态电流20uA
- How does C language (string) delete a specified character in a string?
- SSL证书错误怎么办?浏览器常见SSL证书报错解决办法
- IDEA重启后无法创建Servlet文件的解决方案
- Room rate system - login optimization
- Kubernetes source code analysis (II) -- resource
猜你喜欢
QT Bluetooth: qbluetooth DeviceInfo
腾讯云原生数据库TDSQL-C入选信通院《云原生产品目录》
Household appliance industry under the "retail is king": what is the industry consensus?
Cryptography series: detailed explanation of online certificate status protocol OCSP
A complete tutorial for getting started with redis: AOF persistence
tensorboard的使用
Hazel engine learning (V)
A complete tutorial for getting started with redis: problem location and optimization
如何分析粉丝兴趣?
Jerry's broadcast has built-in flash prompt tone to control playback pause [chapter]
随机推荐
应用程序启动速度的优化
又一百万量子比特!以色列光量子初创公司完成1500万美元融资
Jerry's question about DAC output power [chapter]
[swift] learning notes (I) -- familiar with basic data types, coding styles, tuples, propositions
Redis入门完整教程:客户端管理
PSINS中19维组合导航模块sinsgps详解(时间同步部分)
数学归纳与递归
MOS transistor realizes the automatic switching circuit of main and auxiliary power supply, with "zero" voltage drop and static current of 20ua
Summary of research status of inertial navigation calibration at home and abroad (abridged version)
Left value, right value
Jerry's broadcast has built-in flash prompt tone to control playback pause [chapter]
硬件之OC、OD、推挽解释
Cocos2d-x box2d physical engine compilation settings
The version control of 2021 version is missing. Handling method
凌云出海记 | 易点天下&华为云:推动中国电商企业品牌全球化
Household appliance industry under the "retail is king": what is the industry consensus?
Le tube MOS réalise le circuit de commutation automatique de l'alimentation principale et de l'alimentation auxiliaire, et la chute de tension "zéro", courant statique 20ua
QT Bluetooth: qbluetooth DeviceInfo
DOMContentLoaded和window.onload
简单冒泡排序