Я использую 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
и запустить
тест рейка: профиль
Это эквивалентно тому, что я делал выше, но только сейчас оно интегрировано во всю структуру rails?
Мой следующий вопрос такой. Исходный сценарий выводит плоский файл и HTML-файл, но я не мог понять, как также автоматически получить файл дерева для открытия с помощью KCacheGrind или, в моем случае, MacCallGrind. Могу ли я добавить форматы в вызов скрипта?
Edit: запуск сценариев через тест rake, похоже, на самом деле создает файл дерева, отлично. Mac CallGrind, однако, кажется, зависает при попытке разобрать его. Кто-нибудь знает другие инструменты для просмотра этих файлов дерева?