我使用ruby on rails编写了一个小型web应用程序,它的主要目的是上传、存储和显示xml(文件最多可达几MB)文件的结果.运行了大约2个月后,我注意到mongrel进程使用了大约4GB的内存.我做了一些关于调试ruby内存泄漏的研究,但没有找到多少.所以我有两个问题.
- 在Ruby/rails中有什么好的工具可以用来查找内存泄漏吗?
- 什么类型的编码模式导致ruby内存泄漏?
我使用ruby on rails编写了一个小型web应用程序,它的主要目的是上传、存储和显示xml(文件最多可达几MB)文件的结果.运行了大约2个月后,我注意到mongrel进程使用了大约4GB的内存.我做了一些关于调试ruby内存泄漏的研究,但没有找到多少.所以我有两个问题.
查找Rails内存泄漏的一些技巧:
第一个是ObjectSpace中对象对内存使用情况的图形化探索.
最后两个选项将帮助您确定导致内存使用率inflating 的特定使用模式,您可以从中着手.
至于具体的编码模式,根据经验,你必须观察任何处理文件io、图像处理、处理大量字符串等的事情.
我会判断您是否使用了最合适的XML库——众所周知,ReXML速度很慢,而且据信存在漏洞(我没有证据!).还要判断你是否能完成memoize次昂贵的手术.