Информация об изменениях

Сообщение Re[7]: Маленький оффтоп. от 11.04.2016 13:28

Изменено 11.04.2016 13:29 Sinix

Здравствуйте, Sharov, Вы писали:

S>Ситуация: храним данные в массиве, работаем с массивом и т.д. и т.п, т.е. spatial locality обеспечена. Во время манипуляций с массивом, начинает свою работу gc и содержимое кэша херится. Такое возможно?


Троллинг mode: c spatial locality всё по прежнему ок, в процессе массив переедет целиком (если переедет вообще). Вот с cache locality ой, да.


Короткий ответ: в этом случае замусоривание кэша — меньшая из ваших проблем.

Начнём с очевидного: полный stop the world — это очень больно, обидно и неактуально. <gcConcurrent> на свежих рантаймах по умолчанию выставлен в true, stop the world выполняется только для младших поколений, плюс, для эстетов завезли SustainedLowLatency. За подробностями — тынц.


Тем не менее, полная сборка мусора, даже в фоне и без блокировок — удовольствие всё равно дорогое и его следует по возможности избегать.
Хорошая новость: ситуация "работаем с массивом" редко приводит к вызову сборки мусора. Разве что вы аллоцируете память как не в себя. Но тогда, опять-таки, кэш — меньшая из ваших проблем
Re[7]: Маленький оффтоп.
Здравствуйте, Sharov, Вы писали:

S>Ситуация: храним данные в массиве, работаем с массивом и т.д. и т.п, т.е. spatial locality обеспечена. Во время манипуляций с массивом, начинает свою работу gc и содержимое кэша херится. Такое возможно?


Троллинг mode: c spatial locality всё по прежнему ок, в процессе массив переедет целиком (если переедет вообще). Вот с cache locality ой, да.


Короткий ответ: в этом случае замусоривание кэша — меньшая из ваших проблем.

Начнём с очевидного: полный stop the world — это очень больно, обидно и неактуально. <gcConcurrent> на свежих рантаймах по умолчанию выставлен в true, stop the world выполняется только для младших поколений, плюс, для эстетов завезли SustainedLowLatency. За подробностями — тынц и тынц.


Тем не менее, полная сборка мусора, даже в фоне и без блокировок — удовольствие всё равно дорогое и его следует по возможности избегать.
Хорошая новость: ситуация "работаем с массивом" редко приводит к вызову сборки мусора. Разве что вы аллоцируете память как не в себя. Но тогда, опять-таки, кэш — меньшая из ваших проблем