Polecenie użycia pamięci o składni podobnej do polecenia time
18
Jakie polecenie pokazuje użycie pamięci przez program, szukam polecenia, które jest proste w użyciu i ma podobną składnię jak timepolecenie. Próbuję znaleźć użycie pamięci przez program haszujący md5 napisany w C i zajmuje 7 sekund na haszowanie „witaj świecie”.
Używam systemu operacyjnego Android z zainstalowanym busyboksem.
Jak na ironię, timemoże mieć dla ciebie odpowiedź, ale tym razem nie powinna ona być wbudowana w powłokę, timeale zamiast tego:
$ /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
Liczy się jednak MAX RSS, a nie VSS, więc czy byłby użyteczny, czy nie, zależy w dużej mierze od twojego zadania.
+1, dobrze to wiedzieć. Ale uwaga, jest to funkcja specyficzna dla GNU. Czy Android obejmuje GNU time(1)?
Warren Young,
Wbudowana powłoka? Ani tutaj bashani zshstrony nie wspominają o tym. Czy to mylisz times?
Warren Young,
@WarrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - czas zsh jest słowem zastrzeżonym - czas bash jest słowem kluczowym powłoki - czas myślnika to / usr / bin / time
poige
@WarrenYoung i nie, Android nie ma go domyślnie, ale ponieważ /usr/bin/timejest zbudowany na bazie wywołań systemowych wait3lub wait4(nie pamiętam dokładnie), można go łatwo wprowadzić w życie.
poige
Nawiasem mówiąc, czas macOS pokazuje maksymalne wykorzystanie pamięci w bajtach, a Linux w kilobajtach.
Jego dane wyjściowe będą zawierały wiele nieistotnych elementów, ale podsumowanie sterty robi to, co chcesz:
==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
anizsh
strony nie wspominają o tym. Czy to mylisztimes
?for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done
- czas zsh jest słowem zastrzeżonym - czas bash jest słowem kluczowym powłoki - czas myślnika to / usr / bin / time/usr/bin/time
jest zbudowany na bazie wywołań systemowychwait3
lubwait4
(nie pamiętam dokładnie), można go łatwo wprowadzić w życie.Możesz użyć
valgrind
do tego:Jego dane wyjściowe będą zawierały wiele nieistotnych elementów, ale podsumowanie sterty robi to, co chcesz:
źródło
valgrind
ale wygląda na to, że jest port dla Androida, spróbuję go zainstalować.