Size: a a a

Compiler Development

2020 June 03

λ

λoλdog in Compiler Development
Если б у тебя был ств на любом сейфпоите, то джава бы вообще не работала
источник

λ

λoλdog in Compiler Development
Эт гц условно может сделать паузу на нем, но паузы на каждом нету
источник

MO

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

MO

Mar Ort in Compiler Development
Это первая причина, зачем шенандоаврапврапр останавливает мир
источник

MO

Mar Ort in Compiler Development
λoλdog
Если б у тебя был ств на любом сейфпоите, то джава бы вообще не работала
но сейфпоинт это остановка всего джава-мира
источник

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
Во время STW как минимум делаются снепшоты стеков потоков, потому что другого способа получить эти корни нет
Звучит логично, но надо смотреть что там реально делается.
источник

AT

Alexander Tchitchigi... in Compiler Development
Был бы тут Шипилёв — он бы нам всё разъянил... 😞
источник

λ

λoλdog in Compiler Development
Mar Ort
но сейфпоинт это остановка всего джава-мира
Нет
источник

λ

λoλdog in Compiler Development
safepoint is a state of your application execution where all references to objects are perfectly reachable by the VM.
источник

MO

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

λ

λoλdog in Compiler Development
Но это не значит, что когда ты достиг сейфпоинта, то случится ств
источник

MO

Mar Ort in Compiler Development
Я понял, тут путаница в терминлогии
источник

MO

Mar Ort in Compiler Development
Я имею виду "сейфпоинт" как процедуру остановки джава-мира, а вы говорите про "сейфпоинт" как место в коде
источник

λ

λoλdog in Compiler Development
Ну так
источник

λ

λoλdog in Compiler Development
источник

AT

Alexander Tchitchigi... in Compiler Development
Mar Ort
Я имею виду "сейфпоинт" как процедуру остановки джава-мира, а вы говорите про "сейфпоинт" как место в коде
Так какие ещё в JVM есть остановки, кроме GC? Мне кажется, даже подмена метода на JIT не всегда требует STW.
источник

MO

Mar Ort in Compiler Development
Alexander Tchitchigin
Так какие ещё в JVM есть остановки, кроме GC? Мне кажется, даже подмена метода на JIT не всегда требует STW.
когда какой-нибудь спекулятивный триггер срабатывает например
источник

MO

Mar Ort in Compiler Development
Mar Ort
когда какой-нибудь спекулятивный триггер срабатывает например
здесь суть в том же, надо обойти все стеки всех потоков, поэтому это точно такая STW, но не по причине ГЦ
источник

MO

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

МБ

Михаил Бахтерев... in Compiler Development
А можно ли эти проблемы с GC порешать за счёт архитектуры? Вот в Эрланге, например, для каждого процесса свой независимый контекст GC. Программист может управлять длительностями задержек неявно.
источник