time
어떤 명령이 프로그램의 메모리 사용량을 표시하는지, 사용하기 쉽고 이 명령과 구문이 비슷한 명령을 찾고 있습니다 . "hello world"를 해시하는 데 7초가 걸리는 C로 작성된 md5 해시 프로그램의 메모리 사용량을 찾으려고 합니다.
나는 busybox가 설치된 안드로이드 운영 체제를 사용하고 있습니다.
답변1
아이러니하게도 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
VSS가 아닌 MAX RSS를 계산하므로 이것이 유용한지 여부는 작업에 따라 크게 달라집니다.
UPD.:맥 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
답변2
당신은 그것을 사용할 수 있습니다valgrind
이를 위해:
$ valgrind myprogram arg1 arg2
출력에는 관련 없는 내용이 많이 포함되지만 힙 요약은 원하는 작업을 수행합니다.
==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