在Ruby脚本中追踪内存泄漏

4
我创建了一个名为babylon的Ruby XMPP框架。然后我用它创建了一些应用程序,尽管它们运行得非常顺畅,但似乎它们正在逐渐消耗我的计算机内存。
我怀疑存在内存泄漏,因此首先在代码的某个位置添加了以下内容:
puts `ps -o rss= -p #{Process.pid}`.to_i

正如猜测的那样,输出不断增加……虽然缓慢,但肯定会增加。
我和Dike一起尝试使用这里解释的方法来查找泄漏。
不幸的是,Dike无法检测到任何泄漏。即使运行了相当长的时间,它仍然返回相同的对象。
那么,我怎样才能确定我的框架有泄漏,而不仅仅是占用一些内存直到达到某个最大点,然后开始释放呢?
接下来,我应该如何跟踪泄漏并修复它们呢?
感谢您的帮助!
1个回答

1

我听说Ruby Memory Tracking API很不错,但它是收费的。

还有一篇有用的博客文章介绍了使用valgrind来查找Ruby内存泄漏问题。

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


3
@Julein Genestoux,您获得了一份价格为两个解决方案的报价。 - Wayne Conrad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接