Skip to content

Conversation

@delabassee
Copy link

Note that I'm not sure what Missing parts refers to.

---

Now that JDK 16 release date is very close (2021/03/16 - next Tuesday), there is some time to recap significant changes in Hotspot's stop-the-world garbage collectors - G1 and Parallel GC.
Now that JDK 16 is released, it is time for a recap of the most significant changes in Hotspots stop-the-world garbage collectors - G1 and Parallel GC.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, technically JDK 16 releases tomorrow, and the post is from 2021/03/12, but I'll take the other suggestions.

Not sure how to best manage these really nice suggestions wrt to github - I will take them over manually and reference this pull request.

The problem are humongous objects that are always directly allocated in the old generation, so they typically factor heavily into this allocation rate. However, since JDK 9, with the eager reclamation mentioned above, these humongous objects can reclaimed very quickly and the overall allocation rate in the old generation is actually very low. This led to many unnecessary concurrent markings. The mentioned change for JDK-8245511 solves this problem by taking eager reclamation into account better. There are some nice graphs showing the impact in the [bug report](https://bugs.openjdk.java.net/browse/JDK-8245511).
Humongous objects are (were?) problematic as they are always directly allocated in the old generation, so they typically factor heavily into this allocation rate. However, since JDK 9, with the eager reclamation mentioned above, these humongous objects can reclaimed very quickly and the overall allocation rate in the old generation is actually very low. This led to many unnecessary concurrent markings. The mentioned change for JDK-8245511 solves this problem by taking eager reclamation better into account. There are some nice graphs showing the impact in the [bug report](https://bugs.openjdk.java.net/browse/JDK-8245511).

(Why don't you include the graph here? post with visual will alwats attracts more reads).
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The graphs are very hard to read, would need extensive explanation, and would need re-taking of the measurements to get them into a style so that I would be satisfied with them too. They are certainly fine for the bug report and to get a development discussion going on, and "nice" from a results POV.

This post is also mostly meant as some kind of signpost for the audience, not full explanation of the changes. I do try to spend a few sentences each to explain them, the reasons why they were proposed and their impact, but there is a limit on the amount of effort I want to spend on each.

Ideally there would be a post to link to already.

tschatzl added a commit that referenced this pull request Mar 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants