作者Neisseria (Neisseria)
看板Ruby
標題[分享] 測量 Ruby 程式碼是否有 memory leak
時間Mon Dec 5 19:09:56 2016
如果我們的專案是用純 Ruby 實作
由於 Ruby 有 GC,memory leak 的機率較低
然而,如果我們用 C/C++ 或其他的編譯語言製作 Ruby extension gem
就要注意 memory leak 的議題
用 os 這個 Ruby gem,可以得到 memory usage
https://github.com/rdp/os
使用範例如下:
require 'os'
100.times do
# Run your task here
puts OS.rss_bytes
end
如果記憶體使用量不斷上升,就有可能有 memory leak
這個模組是顯示目前這隻 Ruby 命令稿的記憶體用量
如果要查 memory leak 的位置,要自己設定呼叫的程式碼區塊
在 Windows 上,是透過 win32ole 來查詢
但板工不太熟 OLE,有興趣的板友可自行查詢 os gem 的原始碼
其實蠻短的,這裡就不貼 code 了
在 POSIX 系統上,則是呼叫 ps(1) 這支外部程式來查詢
經板工實測,Linux 和 OSX 上都可以用
分享給有需要的 Rubyist
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.118.146
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ruby/M.1480936199.A.C30.html
※ 編輯: Neisseria (175.182.118.146), 12/05/2016 19:15:26
1F:推 markmcm: 推,不過gc釋放的記憶體還是只有ruby能用 12/05 22:07
2F:→ markmcm: 所以還是得定期重開 12/05 22:07
3F:→ tonytonyjan: gc 釋放的記憶體還是只有 ruby 能用? 12/10 00:36