はじめに
Railsアプリのパフォーマンスを計測するのにpeek-rblineprofというツールを使うと、ソースコードの各行ごとの実行時間が計測できていろいろ捗るという話を聞いたのでやってみた。なにこれ超便利。
実行イメージは本家のスクショを御覧ください。
https://github.com/peek/peek-rblineprof
インストール
Gemfileに以下の行を追加します。
gem 'peek'
gem 'peek-rblineprof'
bundle installします。
$ bundle install
一時的なデバッグ用でプロジェクトのGemfileを汚したくない場合はGemfile.localとか作るとよいです。以下参照。
Gemfileにないgemを使いたい
Railsアプリの設定
イニシャライザでconfig/initializers/peek.rb
とか作って以下の初期化処理を書きます。
Peek.into Peek::Views::Rblineprof
jsとcssを読み込ませます。プロジェクトの構成に合わせて適当な場所で読み込ませて下さい。
(※ファイルのパスはとある例なので各自読み替えて下さい)
app/assets/javascripts/shared/rblineprof.js.coffee
#= require peek
#= require peek/views/rblineprof
app/assets/stylesheets/base/rblineprof.css
//= require peek
//= require peek/views/rblineprof
app/views/layouts/application.html.erb
(略)
<%= stylesheet_link_tag "base/rblineprof", media: 'all' %>
(略)
使い方
計測したいURLの末尾に?lineprofiler=app
というパラメータを付けてアクセスすると、ソースコードの行ごとに実行時間が表示されます。
https://localhost/?lineprofiler=app
みたいな感じです。
実行イメージは本家のスクショを参照。
https://github.com/peek/peek-rblineprof
どこに時間がかかってるか分かっていろいろ捗る。