2012-09-18 33 views
5

Trong Windows tôi có thể nhận việc sử dụng bộ nhớ Đỉnh bằng cách gọi GetProcessMemoryInfoLàm thế nào tôi có thể nhận được bộ nhớ cao điểm trên 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; 

Mac OS tương đương để làm điều này là gì?

+1

đây là một kịch bản mẫu trong Python cho thấy sử dụng tiện ích dòng lệnh và bắt đầu ra của họ để thu thập thông tin này. Bạn có thể sử dụng cách tiếp cận tương tự từ Delphi/Pascal. http://apple.stackexchange.com/questions/4286/is-there-a-mac-os-x-terminal-version-of-the-free-command-in-linux-systems –

+1

Ngẫu nhiên các API POSIX cho bộ nhớ sử dụng không hoạt động trên OS/X vì vậy không có cách nào có thể làm được điều này sẽ hoạt động trên OS/X và tất cả các hệ thống Unix/Linux phổ biến. Tôi chắc rằng có API OS/X chỉ và trình bao bọc C++ như ACE bao gồm chức năng này. Có lẽ Embarcadero nên thêm điều này vào RTL của họ. –

+0

Điều này có thể hữu ích: [Công cụ CHUD] (http://www.macupdate.com/app/mac/8506/apple-chud-tools) –

Trả lời

6

Bạn có thể sử dụng /usr/bin/time -l <cmd> như thế này:

/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

Ảnh hồ sơ đẹp bằng cách :-) –

+0

Tôi thực sự quan tâm đến việc có điều này được thực hiện một cách có lập trình thông qua Delphi. –

+0

Xin lỗi, bạn có thể muốn https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/getrusage.2.html –

Các vấn đề liên quan