Posted at

peek-rblineprofでRailsアプリのソースコード行ごとの実行時間を計測する

More than 3 years have passed since last update.


はじめに

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

どこに時間がかかってるか分かっていろいろ捗る。