2011-12-21 4 views
3

나는 많은 부분들로 구성된 매우 큰 페이지를 렌더링해야하는 응용 프로그램을 만들고 있습니다. 로그에서 각 부분의 렌더링 시간을 볼 수 있으며 500 밀리 초 이상 걸릴 수있는 몇 가지가 있습니다.내 부분품이 너무 느리게 렌더링되는 것을 어떻게 확인할 수 있습니까?

분명히 이것은 받아 들일 수 없다. 부분 부분의 렌더링을 어떻게 프로파일 링 할 수 있습니까?? 예를 들어, 어떻게 호출 된 메서드에 대한 분석을 할 수 있고 "Y, link_to에 X 밀리 초를 보내고 있습니다."라고 말합니다.

Ruby 1.9.2- p290 (도움이된다면 1.9.3을 사용할 수 있음)과 Rails 3.1.3.

답변

2

저는 보통 이것을 위해 ruby_prof 젬을 사용합니다.

는 보석 후 설치하면 검사를 위해, profile.html로 작용의 프로파일을 덤프이

def log_profile 
    result =RubyProf.profile do 
    yield 
    end 

    File.open(Rails.root.join("profile.html"),"w") do |out| 
    printer = RubyProf::GraphHtmlPrinter.new(result) 
    printer.print(out,:min_percent=>0) 
    end 
end 

이처럼 보이는 around_filter를 설치합니다. Ruby 교수는 당신이 가지고 놀 수있는 출력 포맷터를 가지고 있습니다. cache_classes를 사용하여이 작업을 수행해야합니다. 클래스 재로드로 인해보기가 흐려지 지 않도록하십시오.

+0

지금까지 도움을 주셔서 감사합니다. 나는 HTML 그래프를 볼 수 있지만 그것을 이해하지 못한다. 이것에 대한 어떤 참고 사항을 알고 있습니까? –

+0

흠, 도움이됩니다. http://ruby-prof.rubyforge.org/files/examples/flat_txt.html –

관련 문제