When you want to profile the maximum/average physical memory a command/process took during its execution, it happens you can use the linux time
command for that - but you will have to use its’ full path so the syntax works with -v
. After finishing the execution, this command outputs e.g. this information:
$ /usr/bin/time -v sudo htop
Command being timed: "sudo htop"
User time (seconds): 0.10
System time (seconds): 0.23
Percent of CPU this job got: 5%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 7312
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 2
Minor (reclaiming a frame) page faults: 1290
Voluntary context switches: 36
Involuntary context switches: 22
Swaps: 0
File system inputs: 376
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
On these statistics, the memory related metrics are named resident set size (kbytes)
. As you can see in this example, the maximum memory used by the htop process was 7312 kb
. You can also see other interesting execution metrics there.