分析 ruby / ruby on rails 应用程序
Posted
技术标签:
【中文标题】分析 ruby / ruby on rails 应用程序【英文标题】:Profiling a ruby / ruby on rails application 【发布时间】:2010-01-13 13:49:17 【问题描述】:我希望从概念上了解分析 ruby 或 ruby on rails 程序的所有内容(例如内存使用情况、请求调度的速度、与 DB 等外部程序的连接速度)以及最好的工具是什么(在概念上和基础级别)可用。
【问题讨论】:
谢谢大家。但是,我更多的是对性能分析的概念性概述,然后是一些 ruby 特定的工具和技巧。我使用了新的 relic RPM,但它本身就为你做了很多事情。我从学习的角度来看更多,因此希望自己使用一些基本工具来使用这些概念。 您的评论似乎使问题变得模糊和深奥。您想要分析 ruby 的工具,但您不想要特定于 ruby 的工具?查看执行此操作的 OSS 工具的源代码可能会帮助您获得所需的概念理解。特别是查看我在回答中链接到的 Joe Damato 工具的来源。 Github 链接在各自的链接。链接的文章深入探讨了分析背后的问题。 马克,我正在看的是理解 ruby 性能分析的两步过程:1.) 通用概念:内存中的对象、GC、速度等 2.) Ruby 特定工具来应用这些概念。作为这两个步骤的结果,我试图寻求的好处是:1.) 大致了解如何对应用程序进行性能分析(不是深入 - 通用)2.) 因为我很喜欢使用 Ruby 进行编程并使用 Rails,检查这些通用概念在实时应用程序和程序中的实现希望这能让它更清晰! 我必须在这里补充一下:我使用 Unix 风格 - Ubuntu 【参考方案1】:我不知道它是否有帮助,但我在某处读过一篇文章,说 Java 是 Ruby on Rails 应用程序的最佳分析器。想法是在 JRuby 上运行它们并使用 JProfiler 或其他 Java 分析工具来分析您的 Rails 应用程序。 我知道的另一种可能性可能是 Relic RPM,这是一种商业应用程序,尤其是用于分析 Rails 应用程序。
【讨论】:
这是一个有趣的想法。我想,按照这个逻辑,如果你能让 Rails 在 IronRuby 上运行,你就可以使用一些 .NET 分析工具。【参考方案2】:如果您在 Mac 上编程,您可能需要查看DTrace。
目前我个人使用 linux,所以我不能说它的价值,但我已经在各种 Rails 书籍中看到很多次提到它。
它最初由 Sun 开发,用于在 Solaris 上运行,但我相信它现在已预装在 Mac OS X Leopard 上。
【讨论】:
【参考方案3】:你应该看看 Joe Damato 的memory-profiler for Ruby
另外值得一看的是他的ltrace patch
【讨论】:
【参考方案4】:研究了很多工具(memory-profiler, rb-prof...),终于用上了:oink
【讨论】:
以上是关于分析 ruby / ruby on rails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails:如何使用迁移向现有列添加非空约束?
Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)