Comando de uso de memoria con sintaxis similar al comando de tiempo
18
Qué comando muestra el uso de memoria de un programa, estoy buscando un comando que sea simple de usar y tenga una sintaxis similar al timecomando. Estoy tratando de encontrar el uso de memoria de un programa de hash md5 que está escrito en C y tarda 7 segundos en el hash "hello world".
Estoy usando el sistema operativo Android con busybox instalado.
Irónicamente, timepodría tener una respuesta para usted, pero esta vez no debería estar incorporada en la consola timesino independiente:
$ /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
Sin embargo, cuenta con MAX RSS, no VSS, por lo que sería útil para usted o no, depende en gran medida de su tarea.
UPD : Mac OS X "piensa" es un poco diferente pero sigue siendo 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, es bueno saber esto. Pero cuidado, esta es una característica específica de GNU. ¿Android incluye GNU time(1)?
Warren Young
¿Concha incorporada? Ni las páginas de manual bashni zshlas de aquí mencionan esto. ¿Lo estás confundiendo con times?
Warren Young
@WarrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - zsh time es una palabra reservada - bash time es una palabra clave de shell - dash time es / usr / bin / time
poige
@WarrenYoung, y no, Android no lo tiene por defecto, pero dado que /usr/bin/timese basa en gran medida en las llamadas del sistema wait3o wait4(no recuerdo exactamente), también se puede poner en acción fácilmente allí.
Poige
Por cierto, el tiempo de macOS muestra el uso máximo de memoria en bytes y Linux en kilobytes.
Su salida tendrá muchas cosas irrelevantes, pero su resumen de montón hace lo que quieres:
==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
las de aquí mencionan esto. ¿Lo estás confundiendo contimes
?for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done
- zsh time es una palabra reservada - bash time es una palabra clave de shell - dash time es / usr / bin / time/usr/bin/time
se basa en gran medida en las llamadas del sistemawait3
owait4
(no recuerdo exactamente), también se puede poner en acción fácilmente allí.Puedes usar
valgrind
para esto:Su salida tendrá muchas cosas irrelevantes, pero su resumen de montón hace lo que quieres:
fuente
valgrind
pero parece que hay un puerto para Android, intentaré instalarlo.