ruby-on-rails – 为什么内存分析在ruby这么难?

或者说,为什么没有更好的工具来分析ruby中的内存,特别是rails应用程序?

最近我们的rails应用程序(在heroku上托管)已经开始看到工作人员中的大量R14错误.这意味着我们的内存不足.将dynos冲击到2x(512mb – > 1GB)仅暂时缓解了问题,导致我相信某处存在内存泄漏.当然,我的下一步是找到一个很好的分析宝石,可以帮助我发现泄漏的根源.

也许我只是不知道可用的工具,或者也许我不知道如何使用我的工具.我的愿望是,我可以安装一个gem,然后运行关于内存使用统计信息的报告.触发端点获取报告并不真正可行,因为我的内存问题被隔离到运行延迟作业的worker dynos.

我看过memprof,但只有1.8.

我看过ruby-prof(awesome),但内存分析需要一个补丁的ruby intepreter.

我看过GC::Profiler,但我不明白如何找到内存泄漏.

那么在Ruby中找到内存泄漏很难呢?还是我以某种方式错失了点?

解决方法

根据您的“泄漏”类型,您可以运行valgrind对ruby.可能需要重新编译.一般来说,这是很难的,因为ruby做方法分配而不触发任何事件,认情况下,这很难跟踪.另请参阅 perftools.rb project,这有些工作在这个限制.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...