<story><title>Sub-10 ms Latency in Java: Concurrent GC with Green Threads</title><url>https://jet-start.sh/blog/2020/08/05/gc-tuning-for-jet</url></story><parent_chain><item><author>jakewins</author><text>For years of my life, all I thought about was stuff like this. If you&amp;#x27;ve ever ran latency sensitive systems on the JVM.. man is it ever a pain.&lt;p&gt;Who was it that turned GC off entirely, minimized allocation and just restarted their VMs when they ran out of RAM every couple of hours, was that Netflix?&lt;p&gt;Either way. It makes me excited for Rust and the languages it&amp;#x27;ll inspire, all this labor gone away.</text></item></parent_chain><comment><author>manuelabeledo</author><text>&amp;gt; Who was it that turned GC off entirely, minimized allocation and just restarted their VMs when they ran out of RAM every couple of hours, was that Netflix?&lt;p&gt;Every single financial firm out there, using Java for sub-microsecond tasks. Really, there is no other way to keep low latencies if you have your GC messing around every few milliseconds.&lt;p&gt;This may surprise some people, but Java is ubiquitous in low latency environments such as trading firms. It offers performance close enough to C++, but the developer pool is way larger. Also, when one needs to comply with extremely low latency requirements, the way to go is always dedicated hardware anyway.&lt;p&gt;If you are interested in the topic, there is this project called OpenHFT that aims to provide high frequency trading tools for Java. Particularly, their Chronicle Queue implementation tries to handle the GC latency issue by storing stuff off heap. Its co-founder, Peter Lawrey, has also delivered a handful of good talks about low latency Java.</text></comment>
<story><title>Sub-10 ms Latency in Java: Concurrent GC with Green Threads</title><url>https://jet-start.sh/blog/2020/08/05/gc-tuning-for-jet</url></story><parent_chain><item><author>jakewins</author><text>For years of my life, all I thought about was stuff like this. If you&amp;#x27;ve ever ran latency sensitive systems on the JVM.. man is it ever a pain.&lt;p&gt;Who was it that turned GC off entirely, minimized allocation and just restarted their VMs when they ran out of RAM every couple of hours, was that Netflix?&lt;p&gt;Either way. It makes me excited for Rust and the languages it&amp;#x27;ll inspire, all this labor gone away.</text></item></parent_chain><comment><author>pron</author><text>In case you missed this post and the previous ones, here&amp;#x27;s the news: this labour is gone on the JVM. The GCs in JDK 14-15 are good enough pretty much out of the box, and they&amp;#x27;re getting better very quickly now.&lt;p&gt;OTOH, if you think other languages let you do away with a GC without pretty significant extra work, especially in concurrent systems, well, then you haven&amp;#x27;t had experience with those languages.</text></comment>