作者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/cn.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