我一直在寻找Rails的分析工具。我正在玩和测试ruby-prof和railsbench,但我对调整和修改所需的工作量感到沮丧。
虽然我不介意(很多)调整,但我想知道是否还有其他更直接易用的工具来分析Rails应用程序?您推荐哪些工具?
答案 0 :(得分:44)
您也可以使用built in profiler:
$ 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
。
答案 1 :(得分:20)
New Relic提供Rails分析,包括free 'Lite'版本。
答案 2 :(得分:5)
答案 3 :(得分:4)
http://rails-analyzer.rubyforge.org/可能就是你要找的东西。
我强烈建议使用生产日志分析器,以获取最耗时的操作以及操作分析器的清晰列表。
补充:对于生产日志分析器,您不需要任何配置,它只需解析生产日志并为您提供最耗时的操作列表,包括最小/最大/中值时间。很高兴看到你应该在哪里描述/优化更多。
答案 4 :(得分:3)
另一个值得一试的是Mini Profiler:https://github.com/SamSaffron/MiniProfiler/tree/master/Ruby
它在StackExchange上使用(尽管此版本移植到Ruby)。
这是一个Railscast:http://railscasts.com/episodes/368-miniprofiler?view=asciicast
答案 5 :(得分:2)
如果你在OSX Leopard下,你可以尝试DTrace。
答案 6 :(得分:0)
你还应该看看FiveRuns'TuneUp。它是完全免费的,作为插件安装到您的Rails应用程序中。请记住,它确实将数据发送回他们的服务器(主要是非常无害的信息),但这可能会打扰一些人(即政府机构对此非常不满)。我觉得你会惊讶于这个工具在考虑它是免费的时候有多棒。
它的另一个不错的功能是,您可以发布您的运行数据供其他人发表评论,并帮助您诊断长查询或错误的代码。