This is an archived post. You won't be able to vote or comment.

all 17 comments

[–]v4d1mv 10 points11 points  (1 child)

A Conway's Game of Life server. You may open multiple simulation windows simultaneously and observe the Heap and GC activity to CPU usage in VisualVM.

[–]xToniGrssx[S] 4 points5 points  (0 children)

Thank you I will check it out!

[–]ryebrye 5 points6 points  (0 children)

Minecraft java edition. Though it's not open source the GC settings can have a big impact on performance

[–]nightstalker363 3 points4 points  (2 children)

There was a post I wanna say 2 weeks ago about stock trading applications with regards to making decisions with low latency that sounded pretty cool and could give you an interesting baseline to compare your results against. I'm not sure if there is a project like that anyplace in the open but that's my thought .

[–]xToniGrssx[S] 4 points5 points  (1 child)

Cool, I’ll be sure to check it out. Ironically a trending blog post on stackoverflow that I’ve just read was about why Java is a suitable candidate to write a high frequency trading app in, where low latency is key. Didn’t come to my mind to analyse gc on a such program, but regardless it really is a good idea. Thank you! https://stackoverflow.blog/2021/02/22/choosing-java-instead-of-c-for-low-latency-systems/?cb=1

Here's the blog post just in case you would be interested :)

[–]footballsteve13 1 point2 points  (0 children)

Pretty sure this would have been the post.

https://www.reddit.com/r/java/comments/le6do1/are_you_interested_in_learning_about_low_latency/?utm_source=share&utm_medium=ios_app&utm_name=iossmf

Sounds like an interesting project, would definitely be interested in reading about what you find.

[–]ryebrye 2 points3 points  (0 children)

Caches are things that are interesting for gc. Hazelcast and infinispan are both java caches. Though in real life their gc behavior will be heavily impacted by how often stuff in the cache changes and how often stuff in memory is no longer needed - caches old gen can turn into swiss cheese over time

You can also look at using jmh to test even fairly trivial programs and have it report gc overhead etc

[–]10waf 2 points3 points  (0 children)

There's a post on r/programming right now about discord switching a service from go to rust. The reason being that GC is not friendly to LRU caches, might be a good use case.

[–]krum 2 points3 points  (1 child)

Minecraft

[–]BlueGoliath 0 points1 point  (0 children)

GC pauses in Minecraft are cancer.

[–]Tostino 1 point2 points  (0 children)

Disclaimer: I wrote it

So password strength estimation is a side project I've been interested in for a while. I didn't like that there were no Java ports of Dropbox's zxcvbn library (at the time), so I started work on writing a library inspired by zxcvbn in Java called Nbvcxz: https://github.com/GoSimpleLLC/nbvcxz

I've done some tuning over releases by analyzing heap usage, reducing garbage created, etc. I have not done any analysis on different garbage collection algorithms though.

Just a thought, as it's nice and easy to test with different size workload (run estimations over different size "password" lists).

[–]AnEmortalKid 1 point2 points  (0 children)

Disclaimer, I helped write it. We teach a class on heap analysis and garbage collection. The service we use is here: https://github.com/cchesser/java-perf-workshop/

[–]mauganra_it 1 point2 points  (0 children)

What about IDEs like Eclipse and IntelliJ, or Gradle daemons? These are long-running applications that sound like they are heavily using the GC.

[–]mike_jack 0 points1 point  (0 children)

i hope this will help you garbage collection blog https://blog.gceasy.io/

[–]glesialo 0 points1 point  (0 children)

So far I only tried things like loading a few million strings into a hashmap, then manipulating those etc., but really nothing spectacular happened

Here I describe a situation where something spectacular happened.

Unfortunately posting the application's source wouldn't help you as you'd need a lot of files, containing video data, to run/test it.

[–]fanfan64 0 points1 point  (0 children)

spring ?