Eine Möglichkeit besteht noch: Im Debugger werden u.U. die Speicherblocks, die freigegeben werden, in eine interne Liste eingetragen und erst viel später wirklich freigegeben, um Zugriffe über ungültig gewordene Pointer aufzuspüren.
Es kann dann so aussehen, als würde immer mehr Speicher angefordert, aber nicht freigegeben - deshalb meine Frage, wie der 'Speicherverbrauch' festgestellt wurde.