Подтвердить что ты не робот

Как определить максимальное использование памяти в Linux?

У меня есть программа, работающая в двух разных режимах. Я хочу сравнить два режима с учетом требований времени выполнения и памяти. Определение времени выполнения выполняется с помощью time. Фактически, в этом случае это очень просто, потому что программа сообщает о времени процессора и времени разгона в конце теста. Однако определение использования памяти немного сложнее.

Как я могу получить подробную информацию об использовании памяти в процессе на протяжении всей своей жизни? Я хочу знать как максимальное использование, так и среднее. Фактически, в идеале я хотел бы использовать график использования памяти на протяжении всего срока работы.

4b9b3361

Ответ 2

time имеет подробный режим, который дает максимальный и средний размер резидентного набора.

(Размер резидентного набора - это часть памяти процесса, которая хранится в ОЗУ).

$ /usr/bin/time -v command_that_needs_to_measured |& grep resident
    Maximum resident set size (kbytes): 6596
    Average resident set size (kbytes): 0

Не забудьте использовать двоичный /usr/bin/time, который имеет параметр -v. Вы можете просмотреть свою документацию, запустив man time. Если вы не укажете его путь, вместо него будет запущен bash встроенный time, который не имеет опции -v. Вы можете просмотреть его документацию на странице руководства bash или запустить help time.