Не могу отловить, куда уходит память...
Программа на c++, под линукс, используется либа mysqlclient.
Прога занимает в памяти 1400мб (по показаниям ps).
Размер кучи 500мб (по показаниям mallinfo и собственным подсчётам). Статическая память и стеки потоков < 20мб.
Что зохавало ещё гиг?
Какие идеи, что это за память, самый очевидный вариант?
Здравствуйте, sharpensteel, Вы писали:
S>(перенесено из ветки Unix)
S>Не могу отловить, куда уходит память... S>Программа на c++, под линукс, используется либа mysqlclient.
S>Прога занимает в памяти 1400мб (по показаниям ps). S>Размер кучи 500мб (по показаниям mallinfo и собственным подсчётам). Статическая память и стеки потоков < 20мб. S>Что зохавало ещё гиг?
mmap. Причём возможен маппинг кода и возможен malloc через mmap (собственным аллокатором или крупными объектами)
Здравствуйте, sharpensteel, Вы писали:
S>Какие идеи, что это за память, самый очевидный вариант?
самый очевидный вариант — это хип
предлагаю вам более детально поковырять (можете тулзы внешние использовать), а то может получиться что-то типа такого : http://bugs.mysql.com/bug.php?id=45002
успехов
Здравствуйте, uzhas, Вы писали:
U>самый очевидный вариант — это хип U>предлагаю вам более детально поковырять (можете тулзы внешние использовать), а то может получиться что-то типа такого : http://bugs.mysql.com/bug.php?id=45002 U>успехов
После нескольких дней отрубаний кусков программы и установки заглушек оказалось не вызывал в одном месте mysql_free_result...
Что характерно, эта память не показывается при осмотре кучи через <malloc.h>: mallinfo(). Думаю попробовать использовать для поиска утечек valgrind, который тут рекомендуют.