Я хочу запустить программу, потребляющую память, и отслеживать ее использование во времени. Программа заканчивается через несколько секунд после запуска.
Этот предыдущий вопрос предложил пакет sysstat . Хотя его pidstat
утилита частично выполняет то, что я хочу, она не может удовлетворить мои 2 потребности:
- Он принимает минимальный интервал
1s
, но я хочу измерять при более короткой детализации. (0.1s
должно быть в порядке) - Он только отслеживает существующий процесс, хотя я не всегда могу присутствовать, чтобы скопировать и вставить pid.
Существуют ли альтернативные скрипты / утилиты, чтобы лучше выполнять работу по вызову и измерению?
/proc/$PID/statm
), а затем поспать 100 мс и повторить. Почему вы не можете просто продолжать бросать ПИД - ассоциированныйstatm
черезcat
, возможно , использовать некоторое регулярное выражение для фильтра от дополнительных / ненужных значений, и просто сделатьsleep 0.01
? Некоторые операционные системы не допускаютsleep
значения менее секунды , поэтому в этом случае вам придется выбрать маршрут Python (иtime
вместо этого использовать встроенную библиотеку Python для сна).Ответы:
Это должно делать то, что вам нужно. Он получает информацию
/proc/$PID/statm
и печатает (сman procfs
):Сценарий:
Затем вы можете вызвать скрипт, присвоив ему имя процесса в качестве ввода. Например:
ПРИМЕЧАНИЯ:
источник
man
там, я не знаю, почему ваше редактирование было отклонено.Спустя годы я обнаружил, что у valgrind (также) есть инструмент для этого:
Примечание: valgrind делает больше, чем просто наблюдает: ему нужно внедрить некоторый код и сделать снимок памяти. Это может повредить точности статистики.
источник