2010-11-09 16 views
11

Tengo una aplicación Ruby que (en Linux) usa el sistema de archivos/proc para obtener información sobre el uso de memoria. ¿Alguien sabe cómo obtener la misma información para Mac OSX? La llamada al sistema task_info parece prometedora, pero ¿hay un equivalente disponible de Ruby?Obtener el uso de memoria de mi proceso desde OSX usando Ruby

Para ser claro, estoy buscando una llamada al sistema, no quiero iniciar un proceso para esto (lo siento Lars!).

Respuesta

3

En cuanto a this answer, parece que necesita llamar al proc_pidinfo(). No creo que haya un equivalente de Ruby, así que o bien tendrás que escribir una extensión C o usar la gema ruby-ffi.

Other sources indican Rubí 1.9.2 se suministra con un sistema incorporado en FFI - pero esa versión no se entrega con OS X.

21

Tomado de http://laurelfan.com/2008/1/15/ruby-memory-usage:

memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes 

verificado el funcionamiento tanto en Linux y OS X.

Esto devuelve el número de bytes que el proceso tiene residente en memoria, sin incluir el que se intercambia

Para obtener el tamaño total de la memoria virtual, incluido el intercambio, cambie rss a vsz (probado en Linux, pero no probado en OSX):

memory_usage = `ps -o vsz= -p #{Process.pid}`.to_i # in kilobytes 
0

La gema sistema operativo tiene un método rss_bytes que funciona para Linux/Windows/OS X ..

Cuestiones relacionadas