pmap неплох, но он дает вам только снимок, а не максимум.
Возможно, вы захотите взглянуть на getrusage () .В новых ядрах (2.6.32; не уверен в точном обрезании) поля ru_ * rss фактически заполняются.(В старых ядрах они всегда устанавливаются в ноль ...)
Также попробуйте "cat / proc / / status" и посмотрите на VmPeak (который показывает пиковое использование виртуальной памяти) и VmHWM (который показывает пиковый размер резидентного набора).Это оба "высокие отметки", так как они повышаются в течение всей жизни процесса, но никогда не падают.Если вы можете получить их снимок при завершении процесса, вы можете собрать данные самостоятельно.
Однажды я написал .so, чтобы сделать это;это сработало путем исправления exit () (и вы вызвали его с помощью LD_PRELOAD).Но это было для работы, и у меня нет копии: - (.