Size: a a a

Compiler Development

2020 June 03

λ

λoλdog in Compiler Development
Alexander Tchitchigin
Удивительно, но во всех игровых движках (даже на C++!!!) стараются делать минимум аллокаций и максимум переиспользования объектов. И в сетевом коде тоже, да.
Ну да )
источник

M

MaxGraey in Compiler Development
Тот же Chrome тоже рещили сделать сборку мусора для C++ при работе с DOM потому что так проще и безопаснее работать с циклическими зависимостями
источник

MO

Mar Ort in Compiler Development
Alexander Tchitchigin
Во-первых, помнится, у Shenandoah задержка меньше, во-вторых, для физики по факту же всё равно подрубают какой-нибудь Bullet, написанный на плюсах. Т.е. на Java-код ложится только связывание всего этого в кучу, игровая логика и прочий bookkeeping. Вкупе с low-pause GC и JIT должно работать со страшной скоростью, нет?
Она, на сколько мне известно, в "среднем" меньше, но это не означает, что там нету пауз в принципе, в т.ч. тяжелых STWP
источник

MO

Mar Ort in Compiler Development
ГЦ без пауз это пока только zero (без гц)
источник

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
Она, на сколько мне известно, в "среднем" меньше, но это не означает, что там нету пауз в принципе, в т.ч. тяжелых STWP
Означает. В Shenandoah только две короткие STW паузы, время которых фиксировано (не зависит от размера кучи/количества объектов или ещё чего такого), а всё остальное делается concurrently, без остановки других потоков.
источник

λ

λoλdog in Compiler Development
Alexander Tchitchigin
Означает. В Shenandoah только две короткие STW паузы, время которых фиксировано (не зависит от размера кучи/количества объектов или ещё чего такого), а всё остальное делается concurrently, без остановки других потоков.
Да, но эт из-за мутатора в другом месте может работать в целом хуже)
источник

MO

Mar Ort in Compiler Development
Alexander Tchitchigin
Означает. В Shenandoah только две короткие STW паузы, время которых фиксировано (не зависит от размера кучи/количества объектов или ещё чего такого), а всё остальное делается concurrently, без остановки других потоков.
Вы говорите, что я не прав и сразу же приводите подтверждение
источник

λ

λoλdog in Compiler Development
Mar Ort
ГЦ без пауз это пока только zero (без гц)
Это как? Что за гц без пауз? И компакшин без Пауз?
источник

MO

Mar Ort in Compiler Development
В хотспоте, кроме кучи, есть еще много других причин сделать STW
источник

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
Вы говорите, что я не прав и сразу же приводите подтверждение
Вы сказали "в среднем" и "в т.ч. тяжелых STWP" — это не правда. 🤷‍♀️
источник

MO

Mar Ort in Compiler Development
λoλdog
Это как? Что за гц без пауз? И компакшин без Пауз?
Выше ссылка, там просто гц не работает, память кончилась - OOME
источник

λ

λoλdog in Compiler Development
Mar Ort
В хотспоте, кроме кучи, есть еще много других причин сделать STW
Эт какие ?
источник

λ

λoλdog in Compiler Development
Mar Ort
ГЦ без пауз это пока только zero (без гц)
Кто сказал что zgc без пауз )
источник

MO

Mar Ort in Compiler Development
Alexander Tchitchigin
Означает. В Shenandoah только две короткие STW паузы, время которых фиксировано (не зависит от размера кучи/количества объектов или ещё чего такого), а всё остальное делается concurrently, без остановки других потоков.
И, кстати, от размера стека и количества потоков интересно зависит?
источник

AT

Alexander Tchitchigi... in Compiler Development
λoλdog
Да, но эт из-за мутатора в другом месте может работать в целом хуже)
Как всегда — либо latency, либо throughput. Но задержки объективно минимизируются, а в играх "плавность" весьма критична, а вот ядра могут быть недонагружены.
источник

MO

Mar Ort in Compiler Development
λoλdog
Эт какие ?
Любой сейфпоинт не по причине ГЦ
источник

λ

λoλdog in Compiler Development
Mar Ort
Любой сейфпоинт не по причине ГЦ
Чтооооо?
источник

λ

λoλdog in Compiler Development
Эт не так конечно ж
источник

MO

Mar Ort in Compiler Development
λoλdog
Чтооооо?
что не так?
источник

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
И, кстати, от размера стека и количества потоков интересно зависит?
Хороший вопрос. Не помню точно, что он делает во время STW, но, вроде, от размера стека это зависеть не должно. А вот от количества потоков — может.
источник