Команда использования памяти с синтаксисом, похожим на команду времени
18
Какая команда показывает использование памяти программой, я ищу команду, которая проста в использовании и имеет синтаксис, аналогичный time команде. Я пытаюсь найти использование памяти программой хеширования md5, которая написана на C и занимает 7 секунд для хэширования "hello world".
Я использую операционную систему Android с установленным busybox.
Как ни странно, у вас timeможет быть ответ, но на этот раз он должен быть не встроенным в оболочку, timeа автономным:
$ /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
Он учитывает MAX RSS, а не VSS, поэтому будет ли он полезным для вас или нет, в значительной степени зависит от вашей задачи.
UPD. : Mac OS X "думать" немного отличается , но все же это 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, приятно это знать. Но будьте осторожны, это особенность GNU. Android включает в себя GNU time(1)?
Уоррен Янг
Встроенная оболочка? Ни здесь, bashни zshстраницы руководства не упоминают об этом. Вы путаете это с times?
Уоррен Янг
@WarrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - время zsh является зарезервированным словом - время bash является ключевым словом оболочки - время тире равно / usr / bin / time
poige
@WarrenYoung, и нет, в Android его нет по умолчанию, но, поскольку /usr/bin/timeон в значительной степени построен на системных вызовах wait3или wait4(точно не помню), его также можно легко задействовать.
Пой
Кстати, время macOS показывает максимальное использование памяти в байтах, а Linux - в килобайтах.
В его выводе будет много ненужных вещей, но сводка кучи сделает то, что вы хотите:
==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
ниzsh
страницы руководства не упоминают об этом. Вы путаете это сtimes
?for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done
- время zsh является зарезервированным словом - время bash является ключевым словом оболочки - время тире равно / usr / bin / time/usr/bin/time
он в значительной степени построен на системных вызовахwait3
илиwait4
(точно не помню), его также можно легко задействовать.Вы можете использовать
valgrind
для этого:В его выводе будет много ненужных вещей, но сводка кучи сделает то, что вы хотите:
источник
valgrind
но похоже, что есть порт для Android, я постараюсь установить его.