For the first time, the 600 pages of JVM garbage optimization notes uploaded by Ali soared to the top of the GitHub list

#The best time to plant a tree is ten years ago, followed by now

Many programmers can't find a direction in learning at first, but I think after a period of novice period, most of these problems will become less obvious, and the direction of work will gradually become clear.

But it didn't take long for the information that I could understand began to exceed the ability to learn every day, such as buying books that I didn't read, collecting posts that I didn't read, and articles that I didn't follow after I marked them, not to mention the accumulation of more and more articles. Every day, I am faced with various technology sharing or new things in Weibo.

Most people have limited time for learning every day, and how to improve learning efficiency at this stage has become the focus of the solution.

Talking about your experience in improving learning efficiency is actually very simple: systematic learning.

I used to like to read some blogs or some articles that "look" relatively easy to understand. I would mark any technical article I swiped on Weibo and WeChat every day, and I could read it in a few minutes. But after a period of time, although I read a lot of things, I still have a state of spinning around in place, and I have not felt any actual improvement.

In the end, I couldn't help it, and I nibbled it hard with the thick book, and suddenly I felt a sense of enlightenment: what I learned when I was reading is a complete knowledge network, and each knowledge point is related to and different from other content. This kind of comprehensive understanding is much higher than an independent article.

After repeating the painful learning-combing process several times, it is often more effective to read some independent articles or materials, because the corresponding knowledge can be found in the system, and sometimes even a page of a book only needs to read a sentence If you break the window paper, you can master new knowledge. Many programmers can't find a direction in learning at first, but I think after a period of novice period, most of these problems will become less obvious, and the direction of work will gradually become clear.
But it didn't take long for the information that I could understand began to exceed the ability to learn every day, such as buying books that I didn't read, collecting posts that I didn't read, and articles that I didn't follow after I marked them, not to mention the accumulation of more and more articles. Every day, I am faced with various technology sharing or new things in Weibo.
Most people have limited time for learning every day, and how to improve learning efficiency at this stage has become the focus of the solution.
Talking about your experience in improving learning efficiency is actually very simple: systematic learning.
I used to like to read some blogs or some articles that "look" relatively easy to understand. I would mark any technical article I swiped on Weibo and WeChat every day, and I could read it in a few minutes. But after a period of time, although I read a lot of things, I still have a state of spinning around in place, and I have not felt any actual improvement.
In the end, I couldn't help it, and I nibbled it hard with the thick book, and suddenly I felt a sense of enlightenment: what I learned when I was reading is a complete knowledge network, and each knowledge point is related to and different from other content. This kind of comprehensive understanding is not as high as an independent article.
After repeating the painful learning-combing process several times, it is often more effective to read some independent articles or materials, because the corresponding knowledge can be found in the system, and sometimes even a page of a book only needs to read a sentence If you break through that layer of window paper, you can master new knowledge. So I suggest that you read articles and blogs, not just one article. The best results are achieved through transparent and continuous learning.

For an online system, it often happens that:

  • The system suddenly freezes, cannot be accessed, and even appears OOM.
  • The server's CPU load suddenly increased.
  • Directly use the default JVM parameters to go online, and finally find that the system is down.
  • Want to adjust JVM parameters, but can't start. . . . .

For these problems, it is caused by not knowing enough about the JVM.

However, the principle of garbage collection is too abstract, and the tuning of garbage collection relies too much on experience. Clarifying the relationship between garbage collection implementation and hardware is the main challenge when learning garbage collection. In order to help friends learn and use JVM better, today I will share with you a **"In-depth exploration of the challenges and optimization of JVM garbage collection and ARM server garbage collection"**, the following will show you the content, interested friends can see

This document is divided into 4 parts:

  • The first part introduces the basics of virtual machine execution and the related knowledge of garbage collection.
  • The second part introduces the six garbage collection algorithms implemented in the JVM.
  • The third part introduces the parameters provided by the JVM to control the garbage collection algorithm.
  • The fourth part takes the Kunpeng 920 as an example to introduce the ARM server and how to implement GC under the ARM server to give full play to the hardware performance.

Directory overview

Content overview

Chapter 1 Introduction to Java Code Execution

Chapter 2 Basics of Garbage Collection in the JVM

Chapter 3 Serial Recycling

Chapter 4 Concurrent Mark Sweep Collection

Chapter 5 Parallel Collection

Chapter 6 Garbage First

Chapter 7 Shenandoah

Chapter 8 ZGC

Chapter 9 GC General Parameters

Chapter 10 Parallel GC Parameters

Chapter 11 CMS Parameters

Chapter 12 G1 Parameters

Chapter 13 Shenandoah Parameters

Chapter 14 ZGC Parameters

Chapter 15. Tarzan Server Overview

Chapter 16 GC Challenges and Optimizations on the AArch64 Platform

Guess you like

Origin blog.csdn.net/shy111111111/article/details/127475851