N+1問題などを監視してパフォーマンスを改善するRailsプラグインBullet

Railsのfindは便利な反面、非効率的なクエリが発行されてしまうことがある。Bulletプラグインを使えば、そういったクエリを監視し、警告、改善策を提示してくれる。

■Bulletのインストール
sudo gem install bullet


■ruby-growlのインストール
sudo gem install ruby-growl
このままだとconnection refusedというようなエラーが出て起動できないので
『システム環境設定』→『Growl』→『ネットワーク』で
・受信される通知を聞く
・リモートアプリケーションの登録を許可
をチェック。
『一般』に戻って『Growlを終了』でいったん終了してから『Growlを開始』で再起動。
参考:ruby-growl - 橋本詳解

■config/enviroments/development.rbを変更
config.gem 'bullet', :source => 'http://gemcutter.org'
config.after_initialize do
  Bullet.enable = true #Bulletプラグインの有効/無効化
  Bullet.alert = true #JavaScriptでの通知
  Bullet.bullet_logger = true #ログ(Rails.root/log/bullet.log)の記録
  Bullet.console = true #ブラウザのコンソールログに記録(要Webkit or Firebug)
  Bullet.growl = true #Growlでの通知
  Bullet.rails_logger = true #警告をRailsのログに記録
  Bullet.disable_browser_cache = true #ブラウザキャッシュの無効化
end


■試してみる。
N+1問題などを見つけると警告してくれる。

Growlでの警告
Growl

JavaScriptでの警告

JavaScriptでの警告

Growlで警告した場合は環境設定で最大10秒まで表示させられる。
JavaScriptだとOKボタンをクリックしないといけないが、include=>XXXを追加した方がよいなどの警告の場合、警告ダイアログからソースをコピーできる。

サーバーがMongrelの場合は、コンソールに該当する行を表示してくれる。


posted by digital-squad at 2010年05月12日 18時13分 | Comment(0) | TrackBack(0) | Ruby on Rails / Ruby
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。