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

Chr*_*ley 11 ruby macos

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

要清楚,我正在寻找一个系统调用,我不想为此启动一个过程(抱歉Lars!).

Lar*_*eth 21

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

memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes 
Run Code Online (Sandbox Code Playgroud)

经验证可在Linux和OS X中使用.

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

要获得包括交换在内的总虚拟内存大小,请更改rssvsz(在Linux中测试,但未在OSX中测试):

memory_usage = `ps -o vsz= -p #{Process.pid}`.to_i # in kilobytes 
Run Code Online (Sandbox Code Playgroud)


nim*_*odm 3

参考这个答案,您似乎需要打电话proc_pidinfo()。我认为没有 Ruby 等效项,因此您必须编写 C 扩展或使用 ruby​​-ffi gem。

其他消息来源表明 Ruby 1.9.2 附带了内置的 FFI,但该版本并未随 OS X 一起提供。