рельсы ruby-prof и тестирование производительности - PullRequest
0 голосов
/ 17 апреля 2009

Я использую 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, однако, кажется, зависает при попытке разобрать его. Кто-нибудь знает другие инструменты для просмотра этих файлов дерева?

Ответы [ 2 ]

1 голос
/ 27 мая 2009

Брэд, тебе следует связаться с автором MacCallGrind и посмотреть, есть ли обновление, или у него / нее есть исправление для твоих файлов.

О, это верно, это я. Пожалуйста, пишите на richard по адресу Symbol aggmedia.net, так как скоро выйдет обновление, и я бы хотел, чтобы была доступна поддержка Ruby / Rails.

1 голос
/ 28 апреля 2009

Оказывается, это точно так же, я, должно быть, читал старый учебник. Все бенчмаркинг и профилирование теперь в Rails, что потрясающе. И он выводит файлы txt, html и tree, также потрясающие. Теперь, если будет работать только MacCallGrind, я не смогу установить 4-гигабайтные пакеты KDE, необходимые для просмотра файла дерева.

...