当前位置:网站首页>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:+UseParallelGC
We will focus on different garbage collectors in the next article .
边栏推荐
猜你喜欢
Compile homework after class
手把手带你做强化学习实验--敲级详细
TCP的三次握手和四次挥手
Notes on how the network is connected
Activit fragmented deadly pit
The QT program compiled on CentOS lacks a MySQL driven solution
MySQL日期函数
Alibaba cloud server builds SVN version Library
Error occurred during initialization of VM Could not reserve enough space for object heap
JVM之垃圾回收器下篇
随机推荐
Activiti directory (V) reject, restart and cancel process
Eight part essay that everyone likes
Only learning C can live up to expectations top3 demo exercise
@RestController、@Controller
Assembly language segment definition
Go language uses the thrift protocol to realize the client and service end reports not enough arguments in call to oprot Writemessagebegin error resolution
1. JVM入门介绍
The "advertising maniacs" in this group of programmers turned Tiktok advertisements into ar games
Install docker under windows10 (through Oracle VM VirtualBox)
字节跳动春招攻略:学长学姐笔经面经,还有出题人「锦囊」
Fdog series (V): use QT to imitate QQ to realize login interface to main interface, function chapter.
Control transfer instruction
ByteDance open source Gan model compression framework, saving up to 97.8% of computing power - iccv 2021
js垃圾回收机制和内存泄漏
冯诺依曼体系结构
汇编课后作业
Introduction to spring trick of ByteDance: senior students, senior students, senior students, and the author "brocade bag"
吴军三部曲见识(四) 大家智慧
IDEA断点调试技巧,多张动图包教包会。
mysql的合计/统计函数