Rails 有什么工具可以分析 Rails 执行的过程?

ch3n · 2012年07月16日 · 最后由 chitsaou 回复于 2012年07月24日 · 4450 次阅读

类似 php 的 xhprof,可以看到哪里入口,经过哪些文件哪些方法。

谢谢。

我也想知道,还有分析每行代码执行实际的 以前 Asp.net 有个 dotTrace 分析的很详细,求类似工具。

每一行代码的执行时间都能分析出来,很快就能找到性能问题所在:

只用过这个:

proc_object = proc do |event, file, line, id, binding, klass|
  puts "#{event} in #{file}/#{line} #{id} #{klass}"
end
set_trace_func(proc_object)

#2 楼 @fredwu ruby-dtrace 能出图表么?没看到使用说明

刚刚尝试了一下 rack-speedtracker 就是需要一点一点的在代码里面打标记

<html>
<head>
  <% env['st.tracer'].run("styles") do %>
  <%= stylesheet_link_tag "front" %>
  <% end %>
</head>
<body>
     <% env['st.tracer'].run("nav") do %>
        <%= render_list :class => "nav" do |li|
           li << link_to(t("menu.topics"), topics_path)
           li << link_to(t("menu.wiki"), pages_path )
           li << link_to(t("menu.sites"), sites_path )
           li << link_to(t("menu.users"), users_path)
        end %>
      <% end %>
</body>
</html>

另外需要用 Chrome 并安装 Speed Tracer 这个插件。

分析结果图:


我发现 stylesheet_link_tag 和 javascript_include_tag 固定耗费 15ms+ 啊,这个是 ruby-china 的代码,需要引用的文件比较多。

#3 楼 @hhuai 这个不错 就是太变态了。。。一次请求生成 800M 的日志

rubymine(商业软件,收费的)可以单步调试。两年前在 windows 下用过,不知道现在能不能

#6 楼 @ch3n 是的,但啥数据都有了,你可以再用 ruby 统计分析一下。

用过 ruby-prof 来作性能分析,生成的 html 很详细。

rack-bug 可以分析整个页面的的情况 https://github.com/brynary/rack-bug

Aaron Patterson 最近在实作 MRI 的 DTrace hook,希望可以早日 release 啊... 没记错的话 Xcode 的 Instruments 可以解析 DTrace 记录吧?

http://bugs.ruby-lang.org/issues/2565

ch3n 关闭了讨论。 07月21日 00:26
ch3n 重新开启了讨论。 07月21日 00:26
ch3n 关闭了讨论。 07月21日 00:26
需要 登录 后方可回复, 如果你还没有账号请 注册新账号