rails ruby​​-prof 和基准测试

Posted

技术标签:

【中文标题】rails ruby​​-prof 和基准测试【英文标题】:rails ruby-prof and benchmark testing 【发布时间】:2009-04-17 18:40:30 【问题描述】:

我正在运行 Rails 2.2.2。我已经阅读了一些关于 ruby​​-prof 和分析 rails 应用程序的文章。而且我对事情的真正运作方式感到困惑。

我最初使用的是本教程 http://snippets.aktagon.com/snippets/255-How-to-profile-your-Rails-and-Ruby-applications-with-ruby-prof 分析我的应用程序,它可以工作。这涉及编写您自己的配置文件环境并运行> RAILS_ENV=profiling ./script/performance/request -n 100 profiling/homepage.rb

这就是我的困惑。不知何故,这会运行 ruby​​-prof 并打开所有统计信息等,但我看不到实际调用 ruby​​-prof 的任何地方。

然后我进一步阅读,似乎 2.2.2 内置了基准测试/分析。所以我在性能部分编写了一个测试文件,如下所示

require 'test_helper'
require 'performance_test_help'

# Profiling results for each test method are written to tmp/performance.
class BrowsingTest < ActionController::PerformanceTest
  def test_worksheet
    get '/reduction/worksheet'
  end
end

然后运行

rake 测试:配置文件

这是否相当于我上面所做的,只是现在它集成到了整个rails框架中?

我的下一个问题是这个。原始脚本输出一个平面文件和 html 文件,但我不知道如何自动获取树文件以使用 KCacheGrind 或在我的情况下为 MacCallGrind 打开。我可以在脚本调用中添加格式吗?

编辑:通过 rake 测试运行脚本似乎实际上会生成一个树文件,很棒。然而,Mac CallGrind 在尝试解析它时似乎挂起。有人知道查看这些树文件的其他工具吗?

【问题讨论】:

【参考方案1】:

事实证明,完全一样,我一定是在阅读旧教程。现在所有的基准测试和分析都在 Rails 中,这太棒了。它输出 txt、html 和树文件,也很棒。现在,如果只有 MacCallGrind 可以工作,我就无法安装仅查看树文件所需的 4gb KDE 包。

【讨论】:

【参考方案2】:

Brad,您应该联系 MacCallGrind 的作者,看看是否有更新,或者他/她是否对您的文件进行了修复。

哦,对了,就是我。请通过 symbol aggmedia.net 向richard 发送电子邮件,因为即将发布更新,我希望能够获得 Ruby/Rails 支持。

【讨论】:

以上是关于rails ruby​​-prof 和基准测试的主要内容,如果未能解决你的问题,请参考以下文章

ruby Gett媒体基准测试

Ruby基准测试一条多次运行的线[关闭]

ruby SQL与ActiveRecord基准测试(订阅者)

ARM上的Ruby on Rails性能

分析一个达到 100% CPU 且永不结束的 ruby​​ 应用程序

Ruby 方法的测量和基准时间