Регистрация | Войти
Lisp — программируемый язык программирования
RSS
расшифровка журнала сборок мусора в SBCL
den73 - 11.05.2017 11:41, Сообщений - 3
Столкнулся с ситуацией, когда сборка мусора занимает примерно 99,9% всего времени приложения. Пока ситуацию не разрешил (и не факт, что вообще смогу), но вот зато разобрался, что значат колонки в таблице, к-рая записывается в журнал сборок мусора

http://budden73.livejournal.com/25695.html

[#]
Спасибо, интересно. Найти бы время... 
Любопытно, из-за чего такое кол-во мусора? Может тогда вручную память распределять/удалять? Например выделять массив-массивов и держать объекты в них, удаляя массивы, либо распределять/освобождать память через CFFI...
LinkFly - 13.05.2017 13:36
[#] Ответ на комментарий от LinkFly 13.05.2017 13:36
Думается, что это не кол-во мусора (на каждый вызов образуются порядка 10 Мб мусора, при размере памяти в 1 гиг), а кривая стратегия сборщика. Нашёл способ избежать: периодически вручную вызываю (gc 1) и проблемы нет. 
den73 - 13.05.2017 19:14
[#] Ответ на комментарий от den73 13.05.2017 19:14
Неправильно написал: не (gc 1), а (gc :gen 1)
И ешё: ситуация намного хуже в сохранённом образе, по сравнению с тем же приложением, не прошедшим через сохранение образа. Моя версия: при сохранении образа все объекты становятся "самыми старыми" (поколение 6). Соответственно, если туда попадают мутабельные структуры (а они попадают), это как-то (по логике вещей) должно приводить к учащению полной сборки, которая как раз занимает большое время. 
den73 - 13.05.2017 20:43
@2009-2013 lisper.ru