Как я могу профилировать код Ruby в 1.9.2? - PullRequest
8 голосов
/ 09 марта 2011

Что я могу использовать для профилирования кода в 1.9.2?Все версии ruby-prof, которые я нашел в segfault для 1.9.2.

Например, когда я добавляю

gem "ruby-prof"

в Gemfile моего проекта Rails и запускаю

bundle
bundle exec ruby-prof config/environment.rb

У меня есть ошибка.

Есть ли в городе новый камень профилирования?Есть ли способ сделать игру ruby-prof приятной?

Ответы [ 3 ]

2 голосов
/ 17 сентября 2012

Как подсказал @ chris.baglieri, вы можете использовать гем perftools.rb для профилирования кода Ruby 1.9.

gem install perftools.rb

Тогда

require 'perftools'
PerfTools::CpuProfiler.start('profile_data') do
  # something cpu-intensive
end
`pprof.rb --text profile_data profile.txt`
`pprof.rb --pdf  profile_data profile.pdf`
2 голосов
/ 17 сентября 2012

Вы можете использовать другой популярный инструмент профилирования - MethodProfiler

Очень удобно найти медленный метод в целевом классе.

2 голосов
/ 09 марта 2011

Не уверен, что это помогает, но я наткнулся на это, что может добавить немного большей ясности или увести вас по другому пути: http://www.devheads.net/development/ruby/core/segmentation-fault-when-using-ruby-prof-and-ruby-192.htm. Вы можете проверить вилку wycats на основе этого потока: https://github.com/wycats/ruby-prof

Кроме того, я сам не пробовал, и это может быть не совсем то, что вы ищете, но у Aman of Github есть порт google-perftools для Ruby: https://github.com/tmm1/perftools.rb

...