Zaman komutuna benzer sözdizimi ile bellek kullanım komutu


18

Ne komut bir programın bellek kullanımını gösterir, ben kullanımı basit ve timekomuta benzer sözdizimi olan bir komut arıyorum . C ile yazılmış ve "Merhaba dünya" hash 7 saniye süren bir md5 karma programı bellek kullanımını bulmaya çalışıyorum.

Ben meşgul kutusu yüklü android işletim sistemi kullanıyorum.

Yanıtlar:


24

İronik olarak, timesizin için bir cevap olabilir, ancak bu kez bunun kabuk yerleşik timedeğil, bağımsız bir tane olması gerekir :

$ /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 değil, MAX RSS sayar, bu yüzden sizin için yararlı olur mu yoksa çok fazla görevinize bağlıdır.

UPD. : Mac OS X '"think" biraz farklı ama yine de 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, bunu bilmek güzel. Ancak dikkat edin, bu GNU'ya özgü bir özelliktir. Android GNU içeriyor time(1)mu?
— Warren Young

Shell yerleşik mi? Ne buradaki bashne de zshmanajlarda bundan bahsediliyor. Onunla karıştırıyor musun times?
— Warren Young

@WarrenYoung, for SH in zsh bash dash; do $SH -c 'echo $0; type time'; done - zsh zamanı ayrılmış bir kelimedir - bash zamanı bir kabuk anahtar kelimesidir - tire süresi / usr / bin / time
— poige 14:13

@WarrenYoung ve hayır, Android varsayılan olarak sahip değildir, ancak bu yana /usr/bin/timesistem çağrıları üzerine ağır inşa edilmiştir wait3veya wait4(ben tam olarak hatırlamıyorum), kolayca orada yanı eyleme konabilir.
— poige

Bu arada macOS zamanı bayt cinsinden maksimum bellek kullanımını ve kilobayt cinsinden Linux'u gösterir.
— user31389

2

Bunun için kullanabilirsiniz valgrind:

$ valgrind myprogram arg1 arg2

Çıktısının bir sürü alakasız şeyi olacak, ancak yığın özeti istediğinizi yapıyor:

==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

Ben yok valgrindama android için bir bağlantı noktası var gibi görünüyor, ben denemek ve yüklemek.
— kyle k

1
@kylek: Android'de herhangi bir yerel CPU yazılımı geliştirmesi yapıyorsanız, yine de olmasını istersiniz.
— Warren Young
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.