Railsのパフォーマンス調査でrack-mini-profilerを使ってみました。

こんにちは。H.Tと申します。
今年の1月よりGMOソリューションパートナーからGMOアドマーケティングに転籍となりました。
アドマではAkaNe管理画面の開発を担当することになりRails漬けの毎日を過ごしております。

今回は画面のパフォーマンス調査をする機会がありrack-mini-profilerを使ってみたので簡単にご紹介できればと思います。

rack-mini-profilerは手軽にRuby on Railsのパフォーマンス計測ができるgemとなります。
使い方の詳細については下記の通りです。

インストール

ローカルなどの開発環境で使う前提の場合は下記のインストールですぐに使えます。

もし環境によって適用を変更したい場合などは下記のように「require: false」オプションをつけて初期化ファイルを作成する必要があります。

コマンド実行により下記の初期化ファイルが生成され、
この状態で使えるようになりますが必要であれば適宜変更します。

また、メモリの使用状況などはオプションのライブラリをインストールして確認することができます。

画面の見方

早速パフォーマンス計測した画面を見てみたいと思います。

計測したいページを表示すると左上にリクエストを送ってからページが表示されるまでの時間(ms)が表示されます。

秒数のところをクリックすると内訳が表示されます。
上部にサーバ側の処理の内訳、下にクライアント側の計測数値が表示されます。
中央右に「4.9% in sql」とあり、サーバ処理時間の4.9%をsql処理が占めていることがわかります。

「show time with children」をクリックすると処理ごとに纏った秒数が表示されます。

「show trivial」をクリックするとclient eventの内訳が表示されます。

こちらは「〇〇sql(〇〇はSQLが発行された数)」をクリックしてSQLの詳細を表示しているところです。
スロークエリは背景が濃いピンク、薄いピンクなどに変わるのでわかりやすくなります。

「more」をクリックするとオプション機能のhelpを確認できます。GETパラメータでオプション機能を使うことができます。

最後に、「share」をクリックすると全ての情報が展開された形で一枚のHTMLになるので保存してエビデンスとして残しておくなどできます。

以上、簡単ではありますがrack-mini-profilerの使い方でした。