当前位置:网站首页>JVM garbage collector part 1
JVM garbage collector part 1
2022-07-06 17:14:00 【Smart popcorn】
1. Garbage collector classification
Press Working mode classification , Garbage collectors can be divided into :
- Concurrent garbage collection
- Exclusive garbage collection
Hairstyle It means that multiple threads perform garbage collection alternately , The pause time of the program is reduced .
exclusive It means that once garbage collection is performed , Stop other user threads , That is, once garbage collection is performed , The user program will not work .
Press Number of threads classification , Garbage collectors can be divided into :
- Serial garbage collector
- Parallel garbage collector
- Concurrent garbage collector
Serial GC Only suitable for single core CPU Upper use , It works better , It's not used now .
parallel GC It refers to multiple threads performing garbage collection at the same time , But it is still exclusive , There will be stop the world The phenomenon of .
Concurrent GC It refers to the alternate execution of garbage collection threads and user threads , There is no need to pause .
Press Pieces processing classification , Garbage collectors can be divided into :
- Compression garbage collector
- Uncompressed garbage collector
This is mainly aimed at the mark removal algorithm , Some recyclers do not use this algorithm , That's why there is this classification .
Press The working memory classification , Garbage collectors can be divided into the garbage collection of the new generation and the old generation , Because these two areas are very different , Different garbage collectors are generated according to these two areas .
2. assessment GC Performance index of
There are many kinds of indicators , Briefly introduce .
throughput : It refers to the proportion of user thread execution time in the total time , Of course, the bigger the better .
Garbage collection expenses : Refers to the proportion of garbage collection threads in the total time , The smaller the better. .
Pause time : This is what we often say STW, No matter which garbage collector has a pause time , This is caused by the garbage collection thread , We hope the shorter the better .
Collection frequency : It refers to the proportion of garbage collection times in a certain period of time , It depends on the situation , When the frequency is high , Unit pause time is short , The frequency is low , Unit pause time is long .
Memory footprint : Generally refers to the occupation of the heap area , The larger it is, the more objects it can store .
Fast : A bit abstract , We hope that objects can be recycled as soon as they are not used .
Notice the bold noun in front of me ?
These make up the Impossible Triangle , Too much memory , The longer it takes to garbage collect objects once , It also makes the pause time longer , But throughput can be improved , Anyway, the memory is small , Throughput gets lower , But the pause time will become smaller .
But there is still a specific standard , Because memory is relatively cheap , We hope that under the premise of maximum throughput , Can reduce pause time .
3. The history of garbage collector
Just to understand , Here is a cut-off picture , You can simply look at the content in the red box .

4. Seven classic garbage collectors
Serial GC:Serial,Serial Old, The difference between the two is that the former is recycled by the Cenozoic , The latter recycles the elderly .
parallel GC:ParNew,Parallel Scavenge,Parallel Old.
Concurrent GC:CMS,G1, among G1 Count the all-around players .

5. The combination of garbage collectors
Need to know , Not one JVM Just use a garbage collector , They are used together , The combination is as follows , The dotted line indicates that it will be eliminated in later versions .

6. See the default garbage collector
Before any program starts , We can join in JVM Parameters , Print out what the default garbage collector is .
-XX:+PrintCommandLineFlags
The results are as follows ,jdk The default is ParallelGC
-XX:InitialHeapSize=265723392 -XX:MaxHeapSize=4251574272 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGCWe will focus on different garbage collectors in the next article .
边栏推荐
- The daemon thread starts redis and modifies the configuration file
- 姚班智班齐上阵,竞赛高手聚一堂,这是什么神仙编程大赛?
- @RequestMapping、@GetMapping
- Idea breakpoint debugging skills, multiple dynamic diagram package teaching package meeting.
- 8086 CPU internal structure
- MySQL digital function
- 8086 内存
- 唯有学C不负众望 TOP5 S1E8|S1E9:字符和字符串&&算术运算符
- 控制转移指令
- Thank you for your invitation. I'm in the work area. I just handed in the code. I'm an intern in the next ByteDance
猜你喜欢

一个数10年工作经验的微服务架构老师的简历

MySQL数字函数

Flink 解析(一):基础概念解析

Shell_ 00_ First meeting shell

README. txt

逻辑运算指令

数据仓库建模使用的模型以及分层介绍
![Which is more important for programming, practice or theory [there are some things recently, I don't have time to write an article, so I'll post an article on hydrology, and I'll fill in later]](/img/a1/7dd41e75d6768159317b65e436030d.jpg)
Which is more important for programming, practice or theory [there are some things recently, I don't have time to write an article, so I'll post an article on hydrology, and I'll fill in later]

Install docker under windows10 (through Oracle VM VirtualBox)

redux使用说明
随机推荐
数据传送指令
Design of DS18B20 digital thermometer system
8086 分段技术
暑假刷题嗷嗷嗷嗷
8086 memory
算数运算指令
Typescript basic operations
Resume of a microservice architecture teacher with 10 years of work experience
Shell_ 07_ Functions and regular expressions
肖申克的救赎有感
SQL tuning notes
唯有学C不负众望 TOP5 S1E8|S1E9:字符和字符串&&算术运算符
TCP's three handshakes and four waves
搭建flutter环境入坑集合
Shell_ 01_ data processing
ByteDance technical Interviewer: what kind of candidate do I want to pick most
100张图训练1小时,照片风格随意变,文末有Demo试玩|SIGGRAPH 2021
Conception du système de thermomètre numérique DS18B20
Shell_ 00_ First meeting shell
mysql的合计/统计函数