Size: a a a

Compiler Development

2020 June 03

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
Можно конечно сказать, что такое в игре маловероятно, но мысль в том, что паузы никуда не делись, а просто стали меньше. Вроде как shenandoah принципиально отличается от G1 тем, что умеет конкурентно делать компактизацию кучи.
Во-первых, Shenandoah всё умеет делать конкурентно, во-вторых (более важно) у G1 первая сборка вся в STW, что, очевидно, зависит от количества живых объектов в nursery (и только вторая сборка конкуррентная).
источник

AS

Aleksey Shipilev in Compiler Development
Alexander Tchitchigin
Был бы тут Шипилёв — он бы нам всё разъянил... 😞
А что разъяснять? Кому-то мелких STW хватает, чтобы не мутить код оптимизациями под память. У нас есть один нам известный адоптер, который пилит свои коммерческие игрушки, и пускается на Shenandoah. По его словам, это ему сильно развязывает руки, а околомиллисекундную паузу ему на 60 FPS можно и потерпеть.
источник

AS

Aleksey Shipilev in Compiler Development
Mar Ort
Во время STW как минимум делаются снепшоты стеков потоков, потому что другого способа получить эти корни нет
Ага! Пока в HS не прикручена concurrent thread root scanning, это приходится делать в STW, увы.
источник

MO

Mar Ort in Compiler Development
Aleksey Shipilev
Ага! Пока в HS не прикручена concurrent thread root scanning, это приходится делать в STW, увы.
Угу, и в добавок, если еще хардвар такое сделать позволяет физически
источник

AT

Alexander Tchitchigi... in Compiler Development
Aleksey Shipilev
Ага! Пока в HS не прикручена concurrent thread root scanning, это приходится делать в STW, увы.
Вот этот момент и хотелось чтобы Вы разъяснили. Спасибо! 😊

Так а где-то прикручен concurrent thread root scanning?
источник

AS

Aleksey Shipilev in Compiler Development
Alexander Tchitchigin
Вот этот момент и хотелось чтобы Вы разъяснили. Спасибо! 😊

Так а где-то прикручен concurrent thread root scanning?
Насколько я слышал, в Zing. В Hotspot пока ещё делают.
источник

AS

Aleksey Shipilev in Compiler Development
Mar Ort
Угу, и в добавок, если еще хардвар такое сделать позволяет физически
Как обычно, x86_64 работает, а дальше хоть трава не расти...
источник

AT

Alexander Tchitchigi... in Compiler Development
Aleksey Shipilev
Насколько я слышал, в Zing. В Hotspot пока ещё делают.
Круто, спасибо! 😊

А что насчёт остальных STW в HotSpot кроме GC?
источник

MO

Mar Ort in Compiler Development
Aleksey Shipilev
Как обычно, x86_64 работает, а дальше хоть трава не расти...
😔
источник

AS

Aleksey Shipilev in Compiler Development
Alexander Tchitchigin
Круто, спасибо! 😊

А что насчёт остальных STW в HotSpot кроме GC?
А, так их полно. Вот тут список, *большая* часть из этих VMOps останавливает мир: http://hg.openjdk.java.net/jdk/jdk/file/d0d06b8be678/src/hotspot/share/runtime/vmOperations.hpp#l41
источник

AT

Alexander Tchitchigi... in Compiler Development
Aleksey Shipilev
А, так их полно. Вот тут список, *большая* часть из этих VMOps останавливает мир: http://hg.openjdk.java.net/jdk/jdk/file/d0d06b8be678/src/hotspot/share/runtime/vmOperations.hpp#l41
😱
источник

MO

Mar Ort in Compiler Development
Aleksey Shipilev
А, так их полно. Вот тут список, *большая* часть из этих VMOps останавливает мир: http://hg.openjdk.java.net/jdk/jdk/file/d0d06b8be678/src/hotspot/share/runtime/vmOperations.hpp#l41
Тут важно сказать навеное, что бОльшая часть из не-ГЦ пауз диагностические и в проде (тем более в игре) маловероятнны
источник

IU

Ivan Ugliansky in Compiler Development
Mar Ort
Тут важно сказать навеное, что бОльшая часть из не-ГЦ пауз диагностические и в проде (тем более в игре) маловероятнны
ну деоптимизации то совсем не диагностическая штука
источник

MO

Mar Ort in Compiler Development
Ivan Ugliansky
ну деоптимизации то совсем не диагностическая штука
Да, и я ее как раз упомянул выше
источник

MO

Mar Ort in Compiler Development
Mar Ort
когда какой-нибудь спекулятивный триггер срабатывает например
^^
источник

AD

Artyom Drozdov in Compiler Development
Alexander Tchitchigin
Круто, спасибо! 😊

А что насчёт остальных STW в HotSpot кроме GC?
Андрей Паньгин обещал порассказать немного о менее известных срабатываниях safe-point: https://mobile.twitter.com/jugru/status/1265969370506944513?s=21
источник

AS

Aleksey Shipilev in Compiler Development
Mar Ort
Тут важно сказать навеное, что бОльшая часть из не-ГЦ пауз диагностические и в проде (тем более в игре) маловероятнны
Это правда. У нас, правда, юзеры периодически удивляются, что ты просишь у VM heap/thread dump, она падает в STW и там телится многие (милли)секунды.
источник

IU

Ivan Ugliansky in Compiler Development
Mar Ort
Можно конечно сказать, что такое в игре маловероятно, но мысль в том, что паузы никуда не делись, а просто стали меньше. Вроде как shenandoah принципиально отличается от G1 тем, что умеет конкурентно делать компактизацию кучи.
а почему маловероятно? кажется, что как раз в игре это вполне норм: зашел в новую локацию, оптимизации полетели
источник

AD

Artyom Drozdov in Compiler Development
Ivan Ugliansky
а почему маловероятно? кажется, что как раз в игре это вполне норм: зашел в новую локацию, оптимизации полетели
Скорее де-оптимизации))
источник

IU

Ivan Ugliansky in Compiler Development
да, "полетят" деоптимизации)
источник