我创建了一个名为 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/