我一直在寻找 Rails 的分析工具。我目前正在玩和测试 ruby-prof 和 railsbench,但我对要使其正常工作所需的调整和修改量感到有点沮丧。
虽然我不介意(太多)调整,但我想知道是否有其他更直接且易于使用的工具来分析 Rails 应用程序?您推荐哪些工具?
我一直在寻找 Rails 的分析工具。我目前正在玩和测试 ruby-prof 和 railsbench,但我对要使其正常工作所需的调整和修改量感到有点沮丧。
虽然我不介意(太多)调整,但我想知道是否有其他更直接且易于使用的工具来分析 Rails 应用程序?您推荐哪些工具?
您也可以使用内置的分析器:
$ ruby script/performance/profiler 'User.new' 5
% cumulative self self total
time seconds seconds calls ms/call ms/call name
189.25 1.76 1.76 1 1760.00 1760.00 Profiler__.start_profile
43.01 2.16 0.40 115 3.48 3.91 ActiveRecord::ConnectionAdapters::Column#simplified_type
8.60 2.24 0.08 15 5.33 8.67 Array#each
7.53 2.31 0.07 115 0.61 5.39 ActiveRecord::ConnectionAdapters::Column#initialize
6.45 2.37 0.06 115 0.52 0.52 ActiveRecord::ConnectionAdapters::Column#type_cast
5.38 2.42 0.05 690 0.07 0.07 Regexp#===
0.00 2.69 0.00 10 0.00 0.00 Process.times
0.00 2.69 0.00 10 0.00 0.00 Benchmark.times
请注意,对于 Rails 3,您可以使用rails profiler
.
http://rails-analyzer.rubyforge.org/可能是您正在寻找的。
我强烈推荐生产日志分析器以获得最耗时操作的清晰列表以及操作分析器。
补充:对于生产日志分析器,您不需要任何配置,它只解析生产日志并为您提供最耗时的操作列表,包括最小/最大/中值时间。很高兴看到您应该在哪里进行更多分析/优化。
另一个值得一试的是 Mini Profiler:https ://github.com/SamSaffron/MiniProfiler/tree/master/Ruby
它在 StackExchange 上使用(尽管此版本已移植到 Ruby)。
这是一个 Railscast:http: //railscasts.com/episodes/368-miniprofiler?view=asciicast
如果你在 OSX Leopard 下,你可以试试 DTrace。
您还应该看看 FiveRuns 的TuneUp。它是完全免费的,可以作为插件安装到您的 Rails 应用程序中。请记住,它确实会将数据发送回他们的服务器(大多数是非常无害的信息),但这可能会打扰某些人(即政府机构会对此非常不满)。我想你会惊讶于这个工具考虑到它是免费的。
它的另一个不错的功能是您可以发布您的运行数据以供其他人评论并帮助您诊断长查询或错误代码。