Мне нужно проверить потребление памяти определенной частью программы. На данный момент меня интересуют не утечки, а просто вопрос, когда программа распределяет объекты в куче.
Я могу проследить распределение до определенных методов, но теперь мне нужно приблизиться.
В идеале я хотел бы пошагово отлаживать код, чтобы добраться до критической секции, и на каждом последующем шаге получать информацию о том, какая память была выделена и где.
Я пытался использовать valgrind --massif по-разному.
Самым близким, что я получил, было использование vgdb и создание снимка до и после интересующего меня раздела, а затем сравнение их вручную в массиве-визуализаторе.
Однако мне кажется, что я не могу установить пороги или игнорировать методы таким образом, чтобы было видно небольшое выделение (<1 мБ), поскольку программа выделяет несколько сотен мегабайт во время запуска. </p>
Я также попробовал gperftools heapprofiler, но продвинулся немного дальше.
(я также пробовал heaptrack, но пока не смог скомпилировать инструменты графического интерфейса)
Мне кажется, что я что-то здесь упускаю и усложняю, чем должно быть.
Как проверить распределение кучи при пошаговой отладке моего приложения?
CentOS7 3,10, ГЦК 4,8,5
Обновление: это повторяющаяся задача, и я не всегда могу перекомпилировать sw. Я ищу общее решение, которое можно эффективно повторить при анализе «странного» потребления памяти.
С коммерческими инструментами все будет в порядке, пока они работают. получить работу.