2012-09-18 9 views
5

W systemie Windows można uzyskać szczytową wykorzystanie pamięci przez wywołanie GetProcessMemoryInfoJak uzyskać pamięć szczytową w systemie Mac OS?

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; 

Co jest odpowiednikiem Mac OS to zrobić?

+1

oto przykładowy skrypt w Pythonie, które znajdują się przy użyciu narzędzi wiersza polecenia i przechwytywanie ich wyjście zebrać te informacje. Możesz użyć tego samego podejścia z Delphi/Pascal. http://apple.stackexchange.com/questions/4286/is-there-a-mac-os-x-terminal-version-of-the-free-command-in-linux-systems –

+1

Nawiasem mówiąc, API POSIX dla pamięci użycie nie działa w systemie OS/X, więc nie ma PORTABLE, jak to zrobić, który będzie działał na OS/X i wszystkich typowych systemach Unix/Linux. Jestem pewien, że istnieje tylko interfejs API OS/X, a owijacze C++, takie jak ACE, zawierają tę funkcję. Może Embarcadero powinien dodać to do ich RTL. –

+0

To może być przydatne: [narzędzia CHUD] (http://www.macupdate.com/app/mac/8506/apple-chud-tools) –

Odpowiedz

6

Można użyć /usr/bin/time -l <cmd> takiego:

/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

Przyjemne zdjęcie profilowe :-) –

+0

Właściwie byłem zainteresowany programowanie odbywa się za pośrednictwem Delphi. –

+0

Och, przepraszam, może chcesz tego https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/getrusage.2.html –

Powiązane problemy