使用Ruby从OSX获取我的进程的内存使用情况

我有一个Ruby应用程序(在Linux上)使用/ proc文件系统获取有关其内存使用情况的信息。 有谁知道如何为Mac OSX获取相同的信息? task_info系统调用看起来很有前景,但是有没有相同的Ruby可用?

为了清楚起见,我正在寻找一个系统调用,我不想为此启动一个过程(对不起Lars!)。

参考这个答案,你似乎需要调用proc_pidinfo() 。 我认为没有Ruby等价物,所以要么你必须写一个C-extension或者使用ruby-ffi gem。

其他消息来源表明Ruby 1.9.2附带内置FFI – 但该版本不随OS X提供。

摘自http://laurelfan.com/2008/1/15/ruby-memory-usage :

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

已validation可在Linux和OS X中使用。

这将返回进程驻留在内存中的字节数,不包括任何被换出的字节数

要获得包括swap的总虚拟内存大小, vsz rss更改为vsz (在Linux中测试,但未在OSX中测试):

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

OS gem有一个适用于Linux / windows / OS X的rss_bytes方法…