Тёмный

Generational Shenandoah: Better latency with smaller heaps by Kelvin Nilsen 

Devoxx
Подписаться 156 тыс.
Просмотров 1,1 тыс.
50% 1

One benefit of pause-less garbage collectors such as Shenandoah and ZGC is that they can bound pause times to a few ms independent of heap sizes. An operational tradeoff is that the JVM must be configured with a much larger heap in order to assure pause-less operation, sometimes 3-5 times larger than would be required by a stop-the-world garbage collector. This is because extra memory is required to hold objects allocated during the times that garbage collection is concurrently running and to hold floating garbage that was allocated during the previous garbage collection pass but cannot be reclaimed until the end of the courrent garbage collection pass. Adding a second generation to Shenandoah allows typical young-generation garbage collection passes to complete in much less time than is required for traditional Shenandoah full garbage collection cycles. This means less memory is required for new allocations and floating garbage and fewer CPU resources are required by the concurrent GC worker therads. All of this translates into lower costs for capital and operations, lower energy consumption, and a greener planet.
This talk describes the motivation, design, and best-practice recommendations for making effective use of generational Shenandoah in your services that have timeliness constraints.
KELVIN NILSEN
Kelvin is currently working as a Principal Software Engineer for the Amazon Corretto team where he leads the effort to add generational mode to the Shenandoah pause-less garbage collection system. In prior roles, he has worked as a university professor, founder and Chief Technology Officer of NewMonics, an early leading supplier of real-time Java for a broad variety of production deployments, and as the inventor of region-based real-time garbage collection.

Наука

Опубликовано:

 

9 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 1   
@duckydude20
@duckydude20 4 месяца назад
thanks for this great talk. now i understand what is happening when i used shenandoah on prod. i was trying shenandoah on my production running on jvm17. it's was taking up full memory. 6gb. it was doing allocation rate of 800m/s. if i set it to compact, cpu was going 100%. g1gc is able to cope so well. ~15s young gc with 20ms of pause time. shenandoah works great for low allocation rate.
Далее
The Only Unbreakable Law
53:25
Просмотров 318 тыс.
Non-blocking IO under the Hood
1:00:08
Просмотров 5 тыс.
What is Apache Kafka®?
11:42
Просмотров 342 тыс.
This Video is About Electroadhesion.
14:05
Просмотров 3,4 тыс.
Rest API - Best Practices - Design
15:50
Просмотров 100 тыс.
OZON РАЗБИЛИ 3 КОМПЬЮТЕРА
0:57
Просмотров 1,3 млн