Commande d'utilisation de la mémoire avec une syntaxe similaire à la commande time
18
Quelle commande montre l'utilisation de la mémoire d'un programme, je recherche une commande simple à utiliser et ayant une syntaxe similaire à la timecommande. J'essaie de trouver l'utilisation de la mémoire d'un programme de hachage md5 qui est écrit en C et prend 7 secondes pour hacher "hello world".
J'utilise le système d'exploitation Android avec busybox installé.
Ironiquement, il timepourrait y avoir une réponse pour vous, mais cette fois, elle ne devrait pas être intégrée au shell timemais autonome à la place:
$ /usr/bin/time -v uname
Linux
Command being timed: "uname"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 2%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.12
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): 896
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 304
Voluntary context switches: 3
Involuntary context switches: 3
Swaps: 0
File system inputs: 56
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Cependant, il compte MAX RSS, pas VSS, donc cela vous serait utile ou non dépend fortement de votre tâche.
UPD. : Mac OS X "pense" est légèrement différent mais c'est quand même time:
/usr/bin/time -l /Applications/Opera.app/Contents/MacOS/Opera
244.63 real 54.34 user 26.44 sys
284827648 maximum resident set size
0 average shared memory size
0 average unshared data size
0 average unshared stack size
711407 page reclaims
1272 page faults
0 swaps
155 block input operations
251 block output operations
98542 messages sent
68330 messages received
16 signals received
699 voluntary context switches
468999 involuntary context switches
+1, bon de savoir cela. Mais attention, c'est une fonctionnalité spécifique à GNU. Android inclut-il GNU time(1)?
Warren Young
Shell intégré? Ni les pages de manuel bashni zshici ne le mentionnent. Le confondez-vous times?
Warren Young
@WarrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - zsh time est un mot réservé - bash time est un mot clé shell - dash time is / usr / bin / time
poige
@WarrenYoung, et non, Android ne l'a pas par défaut, mais étant donné qu'il /usr/bin/timeest fortement basé sur les appels système wait3ou wait4(je ne me souviens pas exactement), il peut également être facilement mis en œuvre là-bas.
poige
Soit dit en passant, l'heure macOS affiche l'utilisation maximale de la mémoire en octets et Linux en kilo-octets.
Sa sortie aura beaucoup de choses non pertinentes, mais son résumé de tas fait ce que vous voulez:
==91383== HEAP SUMMARY:
==91383== in use at exit: 157,643 bytes in 364 blocks
==91383== total heap usage: 2,999 allocs, 2,635 frees, 306,450 bytes allocated
time(1)
?bash
nizsh
ici ne le mentionnent. Le confondez-voustimes
?for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done
- zsh time est un mot réservé - bash time est un mot clé shell - dash time is / usr / bin / time/usr/bin/time
est fortement basé sur les appels systèmewait3
ouwait4
(je ne me souviens pas exactement), il peut également être facilement mis en œuvre là-bas.Vous pouvez utiliser
valgrind
pour cela:Sa sortie aura beaucoup de choses non pertinentes, mais son résumé de tas fait ce que vous voulez:
la source
valgrind
mais on dirait qu'il y a un port pour android, je vais essayer de l'installer.