Статически рассчитать время выполнения и потребление памяти программы C
Я работаю над языком, который компилируется в C99 без использования malloc, рекурсии и циклов. Вся память предварительно выделяется, и все функции завершаются (если не возникает исключения, такого как деление на ноль).
Точка входа моего модуля всегда одна и та же: функция
Есть ли инструмент, который в таких обстоятельствах рассчитает максимальное использование памяти и максимальное время выполнения моего кода?
1 ответ
valgrind --tool=massif --stacks=yes --pages-as-heap=yes
Вышеупомянутое должно профилировать все использование памяти.
Альтернативно, пока ваш исполняемый файл запущен, вы можете использоватьpmap -x PID
(или посмотрите /proc/PID/maps).
Для времени выполнения я бы просто использовал/usr/bin/time -p exe_name