ruby - 追踪 Ruby 脚本中的内存泄漏

标签 ruby memory memory-leaks

我创建了一个名为 babylon 的 Ruby XMPP 框架.然后我用它创建了一些应用程序,尽管它们运行得相当流畅,但它们似乎正在一点一点地占用我的计算机内存。

我怀疑有泄漏,所以首先,我在我的代码中的某个位置添加了这个:

puts `ps -o rss= -p #{Process.pid}`.to_i

正如所怀疑的那样,产量一直在增加……缓慢但稳定。

我试着用 Dike 寻找漏洞,比如 explained here .

不幸的是,Dike 无法检测到任何泄漏。即使运行了很长时间,它仍然返回相同的对象。

那么,我如何确定我的框架正在泄漏,而不仅仅是占用一些 RAM 直到某个最大值然后开始释放它?

然后,我怎样才能真正跟踪泄漏并修复它们?

感谢您的帮助!

最佳答案

我听说过关于 Ruby Memory Tracking API 的好消息但它不是免费的。

using valgrind 还有一篇有用的博客文章查找 ruby​​ 内存泄漏。

还有其他适用于 Ruby on Rails 的解决方案,但您似乎根本没有使用 Rails。

关于ruby - 追踪 Ruby 脚本中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770555/

相关文章:

ruby - 获取 ruby​​ 版本时出错

java - C#/Java如何存储二维数组,与C++有何不同?

linux - Linux 中 mmap 物理内存的用户空间中的 memcpy 性能不佳

ruby-on-rails - Pow 不能使用 RBENV 与 Ruby 2.0 一起工作

ruby - 方法范围 - 不确定方法应该是实例方法还是类方法

c - malloc() 是否有最大返回值?

c# - ReactiveUI 绑定(bind)似乎可以防止发生垃圾回收

c++ - Valgrind 8 个字节,包含 16 个免费 block

Java程序(Tomcat)不断吃内存(RES in top)

ruby - 如何与 Autotest 同时运行 Ruby 调试器?