Você poderia usar '/ usr / bin / time', no exemplo abaixo nós usamos perl para consumir um pedaço de memória. Isso fornece um bom nível de detalhes para ver o que o processo consumiu. Se você quiser monitorar o que está acontecendo, veja o exemplo abaixo daquele em que 'pmap' é usado em um pid. A maior parte da saída do pmap é omitida, mas a linha final mostrará o resumo do uso da memória.
$ /usr/bin/time --verbose perl -e 'my $a = "a" x 919200000;'
Command being timed: "perl -e my $a = "a" x 919200000;"
User time (seconds): 0.19
System time (seconds): 0.38
Percent of CPU this job got: 99%*emphasized text*
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.57
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): 1798908
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 449020
Voluntary context switches: 1
Involuntary context switches: 2
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
pmap:
$ pmap -x $( pgrep firefox )
Address Kbytes RSS Dirty Mode Mapping
...
00007fffa75fc000 8 8 0 r-x-- [ anon ]
00007fffa75fe000 8 0 0 r---- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------- ------- -------
total kB 1865700 548748 422532
Para coletar apenas a linha final, você pode usar tail -1, para a linha final. Se você quiser apenas os totais de memória, então o awk pode ser mais apropriado, remova conforme apropriado:
$ pmap -x $( pgrep firefox ) | awk '{ if( $_ ~ /^total/ ) { printf( "%d %d %d\n", $3, $4, $5 ); } }'
1976996 595644 478532