Я написал программу, и теперь мне нужно измерить ее производительность, поэтому я использую time
для нахождения времени, но есть ли какая-нибудь команда, например, время, когда я мог бы запустить свою программу под ней и иметь объем памяти, используемый моей программой? (как то, что делает time
)
Я программирую на C / C ++, Java, Python и т. д., поэтому мне нужен универсальный инструмент (например, time
) для измерения использования памяти.
TnX ALoT!
ps
, top
и atop
не собираются давать вам наиболее точные ответы. В этой теме обмена стеками подробно рассматривается это и указывается на хорошо написанную запись в блоге по этой теме, в которой подробно объясняется, почему это так.
Существуют лучшие инструменты, которые помогут вам попытаться количественно оценить использование памяти, и valgrind
, кажется, хороший инструмент . Вы можете установить его, запустив:
sudo apt-get install valgrind
Допустим, у вас есть программа с именем hello_world:
gcc -o hello_world -g hello_world.c
Чтобы получить профиль кучи для этой программы, вы должны выполнить:
valgrind --tool=massif ./hello_world
Это даст общий вывод на ваш экран, фактические результаты будут сохранены в файл в том же каталоге, который имеет вид:
massif.out.pid
где pid - идентификатор программы для hello_world когда вы запустили его в этом случае.
Вероятно, было бы лучше получить информацию time
отдельно, то есть не пытайтесь запускать valgrind
и time
одновременно. Ссылка на стек-поток предоставляет другие альтернативы.