It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Which GC (Garbage Collection) strategy do you prefer for your app in new Java?

Hi awesome community!

 

During conversation with community members, I see a lot of users used standard Garbage Collector. Also, Java world is provide a lot of interesting new things around GC and deprecated as well. 

Let's see what kind of GC supported by adoptJDK, OpenJDK, Oracle (excluding commercial builds).

  • Serial
  • Parallel
  • Concurent Mark Sweep (CMS)
  • G1
  • Shenandoah
  • ZGC
  • Epsilon (only for measuring)

I will link JEPs as possible, for clear overview.

Also, about Memory management and a good explaining about Serial, Parallel, CMS you can read on oracle site. e.g.

https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

To be a brief, I have uploaded that picture

image.png

 

 

Hence I will upload a picture how works the 2 first algorithms

image.png

Concurent Mark Sweep

image.png

From Java 9, it marks as deprecated

You will see the message in your console

Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

As suggestion switch into G1GC or other GC.

 

G1

Introduced on Java 9 as default, If you use a JDK of lower release, G1 can be enabled with the -XX:+UseG1GC parameter. On last 2018 year, Atlassian set into setenv.sh for most of products key -XX:+UseG1GC.

image.png

Also, you can use string deduplication option

 

Shenandoah

Very strict for GC pauses

image.png

https://wiki.openjdk.java.net/display/shenandoah/Main

 

 

ZGC

Introduced on Java 11. 

Low latency.

https://wiki.openjdk.java.net/display/zgc/Main

 

Epsilon GC

Please, have a look into source for what it can be needed

In my use case, it can be covered to understand the heap size, leaks on test env. Hence I can decrease time for dancing with parameters on production env. 

Maybe that GC actively used by Atlassian developers and vendors developers as well.

 

Conclusion

I hope most of users will continue use G1 or will upload experiences with working with new algorithms. Also, will switch from CMS. 

Just also, very interesting to see performance results  C4 GC from AzulVM.

 

Cheers,

Gonchik Tsymzhitov

0 comments

Comment

Log in or Sign up to comment
Community showcase
Asked in Data Center

AMA: How to plan ahead for Data Center - Expert advice from an Atlassian panel

This AMA is now closed Hi! I'm Jacob Shepard a Product Marketing Manager on Atlassian’s Enterprise Team. We know that moving to Data Center is no small task. To do so effectively demands extensive ...

8,714 views 47 36
View question

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you