2012-09-18 14 views
5

Ben GetProcessMemoryInfoMac OS'ta en yoğun belleği nasıl alabilirim? Windows

arayarak Tepe Bellek kullanımını alabilirsiniz
function TProcess.Peek: Cardinal; 
var 
    PMC: PPROCESS_MEMORY_COUNTERS; 
    PMCSize: Cardinal; 
begin 
    PMCSize := SizeOf(PROCESS_MEMORY_COUNTERS); 
    GetMem(PMC, PMCSize); 
    try 
    PMC^.cb := PMCSize; 
    if GetProcessMemoryInfo(FHandle, PMC, PMCSize) then 
     Exit(PMC^.PeakWorkingSetSize) 
    else 
     Exit(0); 
    finally 
    FreeMem(PMC); 
    end; 
end; 

bunu yapmak için Mac OS eşdeğer nedir?

+1

burada komut satırı yardımcı programları kullanarak ve bu bilgi toplamak için kendi çıkışını yakalayan gösterir Python örnek bir senaryo. Aynı yaklaşımı Delphi/Pascal'dan da kullanabilirsiniz. http://apple.stackexchange.com/questions/4286/is-there-a-mac-os-x-terminal-version-of-the-free-command-in-linux-systems –

+1

Bellek için POSIX API'leri kullanım OS/X'de çalışmaz, böylece OS/X ve tüm ortak Unix/Linux sistemlerinde çalışacak PORTABLE yolu yoktur. Eminim bir OS/X yalnızca API vardır ve ACE gibi C++ sarmalayıcıları bu işlevselliği içerir. Belki Embarcadero bunu RTL'lerine eklemelidir. –

+0

Bu yararlı olabilir: [CHUD araçları] (http://www.macupdate.com/app/mac/8506/apple-chud-tools) –

cevap

6

Böyle /usr/bin/time -l <cmd> kullanabilirsiniz:

/usr/bin/time -l sleep 3 
     3.00 real   0.00 user   0.00 sys 
    552960 maximum resident set size     <--- this one (in btyes) 
     0 average shared memory size 
     0 average unshared data size 
     0 average unshared stack size 
     144 page reclaims 
     0 page faults 
     0 swaps 
     0 block input operations 
     0 block output operations 
     0 messages sent 
     0 messages received 
     0 signals received 
     0 voluntary context switches 
     2 involuntary context switches 
+0

Bu arada güzel bir profil resmi :-) –

+0

Aslında sahip olmakla ilgileniyordum Bu Delphi ile programatik olarak yapılır. –

+0

Üzgünüm, belki de bu https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/getrusage.2.html –

İlgili konular