ruby-on-rails - ruby/ruby on rails 内存泄漏检测

标签 ruby-on-rails ruby memory memory-leaks coding-style

我使用 ruby​​ on rails 编写了一个小型 Web 应用程序,它的主要目的是上传、存储和显示来自 xml(文件最多几 MB)文件的结果。运行大约 2 个月后,我注意到 mongrel 进程使用了​​大约 4GB 的内存。我对调试 ruby​​ 内存泄漏进行了一些研究,但找不到太多。所以我有两个问题。

  • 有没有什么好的工具可以用来查找 Ruby/rails 中的内存泄漏?
  • 什么类型的编码模式会导致 ruby​​ 中的内存泄漏?

最佳答案

在 Rails 中查找内存泄漏的一些技巧:

第一个是对 ObjectSpace 中对象的内存使用情况的图形探索。

最后两个将帮助您识别导致内存使用量膨胀的特定使用模式,您可以从那里开始工作。

至于特定的编码模式,根据经验,您必须观察处理文件 io、图像处理、处理大量字符串等的任何内容。

我会检查您是否使用了最合适的 XML 库 - 众所周知,ReXML 很慢并且被认为是泄漏的(我没有证据!)。还要检查您是否可以memoize昂贵的操作。

关于ruby-on-rails - ruby/ruby on rails 内存泄漏检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/161315/

相关文章:

css - Rails 4 不是 image_url 的正确路径

mysql - Rails 订单产品价格按最小值递增和递减 has_many 关系

windows - 帮助了解 Windows 内存 - "Working Set"

ruby-on-rails - Mongoid,调用 update_attributes 两次以保持更改

ruby-on-rails - restful api (rails), mvc javascript app (ember or backbone) and token based authentication

ruby-on-rails - 从 windows-1251 到 UTF-8 Ruby on Rails

c - 如何将链表中的节点分割成 8 字节的 block ?

c++ - 通过函数在共享内存中 boost C++ 结构

javascript - 我可以对 DOM 进行单元测试吗?

ruby - 在 Ruby 中获取当前目录的父目录