2012-09-18 27 views
5

En Windows puedo conseguir el uso de la memoria de pico llamando GetProcessMemoryInfo¿Cómo puedo obtener la memoria pico en 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; 

Cuál es el equivalente de Mac OS para hacer esto?

+1

aquí es un script de ejemplo en Python que muestra el uso de las utilidades de línea de comandos y la captura de su producción para reunir esta información. Puedes usar el mismo enfoque de Delphi/Pascal. http://apple.stackexchange.com/questions/4286/is-there-a-mac-os-x-terminal-version-of-the-free-command-in-linux-systems –

+1

A propósito, las API de POSIX para la memoria el uso no funciona en OS/X, por lo que no existe una forma PORTABLE de hacerlo que funcione en OS/X y en todos los sistemas Unix/Linux comunes. Estoy seguro de que hay una API OS/X-only, y los wrappers de C++ como ACE incluyen esta funcionalidad. Quizás Embarcadero debería agregar esto a su RTL. –

+0

Esto podría ser útil: [herramientas de CHUD] (http://www.macupdate.com/app/mac/8506/apple-chud-tools) –

Respuesta

6

Puede utilizar /usr/bin/time -l <cmd> así:

/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

Bonita foto de perfil por cierto :-) –

+0

Estaba realmente interesado en tener esto hecho programáticamente a través de Delphi. –

+0

Oh, lo siento, quizás quieras esto https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/getrusage.2.html –

Cuestiones relacionadas