我有一個Ruby應用程序(在Linux上)使用/ proc文件系統獲取有關其內存使用情況的信息。有誰知道如何獲得Mac OSX的相同信息? task_info系統調用看起來很有前途,但是有沒有相當於Ruby的可用功能?使用Ruby從OSX獲取我的進程的內存使用情況
要清楚,我正在尋找系統調用,我不想爲此啓動一個進程(對不起Lars!)。
我有一個Ruby應用程序(在Linux上)使用/ proc文件系統獲取有關其內存使用情況的信息。有誰知道如何獲得Mac OSX的相同信息? task_info系統調用看起來很有前途,但是有沒有相當於Ruby的可用功能?使用Ruby從OSX獲取我的進程的內存使用情況
要清楚,我正在尋找系統調用,我不想爲此啓動一個進程(對不起Lars!)。
參照this answer好像你需要撥打proc_pidinfo()
。我不認爲有Ruby的等價物,所以你不得不寫一個C擴展或者使用ruby-ffi gem。
Other sources表示紅寶石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
驗證在Linux和OS X.
這將返回該工藝具有駐留在內存中的字節數的工作,不包括任何換出
要獲得包括交換在內的總虛擬內存大小,請將rss
更改爲vsz
(在Linux中進行了測試,但未在OSX中進行測試):
memory_usage = `ps -o vsz= -p #{Process.pid}`.to_i # in kilobytes
操作系統的寶石有一個rss_bytes方法,對於Linux/Windows的/ OS X工程交付.. 。