समय कमांड के समान सिंटैक्स के साथ मेमोरी उपयोग कमांड


18

क्या कमांड किसी प्रोग्राम के मेमोरी उपयोग को दर्शाता है, मैं एक ऐसे कमांड की तलाश में हूं जो उपयोग करने के लिए सरल हो और timeकमांड के समान सिंटैक्स हो । मैं एक md5 हैशिंग प्रोग्राम के मेमोरी उपयोग को खोजने की कोशिश कर रहा हूं जो C में लिखा गया है और हैश "हेलिकॉप्टर वर्ल्ड" में 7 सेकंड लेता है।

मैं व्यस्त ऑपरेटिंग सिस्टम के साथ एंड्रॉइड ऑपरेटिंग सिस्टम का उपयोग कर रहा हूं।

जवाबों:


24

विडंबना यह है कि 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

हालांकि, यह अधिकतम RSS को गिनता है, VSS नहीं, इसलिए यह आपके लिए उपयोगी होगा या नहीं, यह आपके बहुत काम पर निर्भर करता है।

युपीडी। : मैक ओएस एक्स '"लगता है" थोड़ा अलग है, लेकिन अभी भी यह है 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, यह जानकर अच्छा लगा। लेकिन सावधान, यह एक जीएनयू-विशिष्ट विशेषता है। क्या Android में GNU शामिल है time(1)?
वॉरेन यंग

शेल बनाया? न तो यहाँ bashऔर न ही zshमनपंसदों ने इसका उल्लेख किया है। क्या आप इसे भ्रमित कर रहे हैं times?
वॉरेन यंग

@ArrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - zsh समय एक आरक्षित शब्द है - bash time एक शेल कीवर्ड है - डैश टाइम है / usr / bin / time
poige

@WarrenYoung, और nope, Android के पास डिफ़ॉल्ट रूप से नहीं है, लेकिन चूंकि /usr/bin/timeसिस्टम कॉल के शीर्ष पर बहुत अधिक बनाया गया है ( wait3या wait4मुझे बिल्कुल याद नहीं है), इसे आसानी से वहां भी कार्रवाई में रखा जा सकता है।
3

वैसे macOS समय किलोबाइट में बाइट्स और लिनक्स में अधिकतम मेमोरी उपयोग दिखाता है।
user31389

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

मेरे पास नहीं है valgrindलेकिन ऐसा लगता है कि एंड्रॉइड के लिए एक पोर्ट है, मैं इसे स्थापित करने की कोशिश करूंगा।
काइल k

1
@kylek: यदि आप एंड्रॉइड पर कोई भी मूल सीपीयू सॉफ्टवेयर विकास कर रहे हैं, तो आप इसे वैसे भी रखना चाहते हैं।
वॉरेन यंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.