Мы сталкиваемся с несколькими проблемами, связанными с утечкой памяти. Мы используем контексты с ref-counting сборкой мусора. Вот краткое описание ситуации:Отслеживание утечек памяти z3
С помощью ScalaZ3 на последнем неустойчивом мы создаем много перерасчетных контекстов (400-500), на которых у нас мало решателей (< 5), проверьте пару формул, а затем удалить все. Мы пытаемся отменить все до удаления самого контекста. Мы свидетельствуем, что объем памяти увеличивается (до нескольких Гб), хотя мы используем только 5 или 6 свежих и небольших контекстов за раз.
1) Z3 освобождает память всех объектов в контексте, когда этот контекст удаляется? (Даже те, у кого есть refcount> 0). Если нет, причина, вероятно, в том, что мы забыли обработать несколько объектов.
2) У вас есть инструмент/наконечник, который поможет нам отследить, что осталось в памяти. Может быть, что-то поверх открытого файла open_log? Или где искать при воспроизведении журнала под gcc?
Спасибо!
Я пробовал использовать valgrind, но через jvm, что не помогло. Я уверен, что использование и журнала, и флагов отладки поможет мне обратить внимание на проблему, спасибо! –