2017-09-14 5 views
0

Je vais écrire un programme Perl qui va utiliser en conséquence des benchmarks préliminaires sur de petites quantités de données sur une mémoire de 100MB. Je veux connaître la quantité de mémoire utilisée plus précisément.Comment déterminer la quantité maximale de mémoire utilisée par un programme?

Comment puis-je déterminer la quantité de mémoire utilisée par un script Perl?

Il devrait y avoir une commande comme (son nom printmaxmemoryuse est composé par moi):

printmaxmemoryuse perl myscript.pl 

Nous sommes sur FreeBSD.

+0

Probablement quelque chose comme '/ usr/bin/time -l perl myscript.pl' –

Répondre

3

Dans FreeBSD, vous pouvez utiliser procstat pour obtenir plus de détails sur le processus. par exemple pour obtenir la mémoire d'un processus utilise:

procstat -r <PID> 

sortie Exemple:

# procstat -r 847 
PID COMM    RESOURCE       VALUE 
847 immortal   user time     00:00:09.842315 
847 immortal   system time     00:00:26.680180 
847 immortal   maximum RSS        9884 KB 
847 immortal   integral shared memory    11960644 KB 
847 immortal   integral unshared data    1685608 KB 
847 immortal   integral unshared stack    573824 KB 
847 immortal   page reclaims      1126497 
847 immortal   page faults        176 
847 immortal   swaps          0 
847 immortal   block reads        57 
847 immortal   block writes       356464 
847 immortal   messages sent       13712 
847 immortal   messages received       2 
847 immortal   signals received      13708 
847 immortal   voluntary context switches   272454 
847 immortal   involuntary context switches   14765 

En outre, vous pouvez utiliser top avec cmdwatch par exemple:

cmdwatch -n1 'top -d 1 | grep 847'