Комментарии 5
Спасибо, это очень интересно.
Непонятно вот что: почему в дампе памяти этой проблемы не было видно?
Ведь массив-то этот в памяти хранится.
Некоторое время назад я столкнулся с похожей проблемой на веблоджике — тоже память растёт, дамп снимаешь, смотришь — ничего интересного в нём нет, объём дампа 10 гигов, а в EclipseMemoryAnalyser анализируется 700 метров.
Так и не разобрался.
И на .Net недавно похожая заморочка была — тоже утечка, размер дампа соответствует памяти, а в dotMemory откроешь — а внутри виден один гиг и в нём гигантской утечки не видать. Увидели малкнькую утечку, исправили её — большая тоже ушла.
В дампе массив с потоками был, но дамп большой, информации в нем много, а массив не особо выделялся на фоне остальных данных, поэтому мы и не заметили проблемы.
Насчет EclipseMemoryAnalyser и dotMemory, вероятно, проблема из той же серии, что и в случае с tracemalloc, который показывает только память, выделенную самим Python, но ничего не знает о распределении памяти в С и С++.
Насчет EclipseMemoryAnalyser и dotMemory, вероятно, проблема из той же серии, что и в случае с tracemalloc, который показывает только память, выделенную самим Python, но ничего не знает о распределении памяти в С и С++.
Ттак а у вас разве не этот массив всю память пожирал?
Про c-шный код верно.
Да, по сути он, но при анализе дампа его не заметили.
Не заметили из-за того, что массив состоит из объектов, которые содержат в себе кучу сишной начинки, которая занимает память. Поэтому сам массив относительно небольшой по сравнению с остальными структурами, а память была съедена теми объектами, ссылки на которые он содержал.
Не заметили из-за того, что массив состоит из объектов, которые содержат в себе кучу сишной начинки, которая занимает память. Поэтому сам массив относительно небольшой по сравнению с остальными структурами, а память была съедена теми объектами, ссылки на которые он содержал.
О!
Спасибо за ликбез
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Программисты-сантехники, или история об одной утечке и сложностях борьбы с ней