当前位置:网站首页>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
边栏推荐
- New benchmark! Intelligent social governance
- Form validation of uniapp
- HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅
- ERROR: Could not find a version that satisfies the requirement xxxxx (from versions: none)解决办法
- 数学归纳与递归
- 2022 information security engineer examination outline
- Introduction to ins/gps integrated navigation type
- PSINS中19维组合导航模块sinsgps详解(滤波部分)
- Lost in the lock world of MySQL
- Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
猜你喜欢
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (time synchronization part)
“零售为王”下的家电产业:什么是行业共识?
商城商品的知识图谱构建
Oauth2协议中如何对accessToken进行校验
How-PIL-to-Tensor
Hazel engine learning (V)
Es6中Promise的使用
“去虚向实”大潮下,百度智能云向实而生
Development of wireless communication technology, cv5200 long-distance WiFi module, UAV WiFi image transmission application
Laravel php artisan 自动生成Model+Migrate+Controller 命令大全
随机推荐
Nuggets quantification: obtain data through the history method, and use the same proportional compound weight factor as Sina Finance and snowball. Different from flush
「小样本深度学习图像识别」最新2022综述
杰理之FM 模式单声道或立体声选择设置【篇】
QT Bluetooth: qbluetooth DeviceInfo
Redis getting started complete tutorial: replication configuration
[tools] basic concept of database and MySQL installation
惯导标定国内外研究现状小结(删减版)
存储过程与函数(MySQL)
How to verify accesstoken in oauth2 protocol
凌云出海记 | 易点天下&华为云:推动中国电商企业品牌全球化
2022.6.28
Redis introduction complete tutorial: client case analysis
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (time synchronization part)
PSINS中19维组合导航模块sinsgps详解(时间同步部分)
Kubernetes source code analysis (II) -- resource
【安全的办公和生产力应用程序】上海道宁为您提供ONLYOFFICE下载、试用、教程
Domcontentloaded and window onload
The whole process of knowledge map construction
Kubernetes源码分析(二)----资源Resource
Optimization of application startup speed