Измерение на уровне блоков будет трудным (в лучшем случае), если вы не захотите явно добавлять инструментарий непосредственно в тестируемый код.
Я бы не стал начинать с перегрузок new
и delete
на уровне класса, чтобы попытаться это сделать. Вместо этого я бы использовал перегрузки ::operator new
и ::operator delete
. Это в основном верхушка воронки (так сказать) - все остальное управление динамической памятью в конечном итоге сводится к их вызову (и большинство делает это довольно напрямую). Таким образом, они, как правило, будут делать все возможное, чтобы рассказать вам об использовании динамической памяти программой в целом.
Основное время, когда вам нужно будет справиться с перегрузками new
и delete
для отдельного класса, будет, если они уже перегружены, поэтому они управляют отдельным пулом, и Вы заботитесь о том, сколько из этого пула используется в данный момент. В этом случае вам (примерно) нужно добавить инструментарий непосредственно к ним, чтобы получить что-то вроде высокой отметки об использовании ими памяти в течение заданного интервала.