4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでパフォーマンスチューニングする前準備

Posted at

パフォーマンスについて全然わからなかったので、測定の仕方から調べた。
現状のパフォーマンスの把握 => 改善ポイント出し => 改善のプロセスの中で、現状のパフォーマンスの把握についてまとめた。

パフォーマンスの把握

rack-mini-profilerで測定する

簡単なパフォーマンス測定ができるgem rack-mini-profiler が便利(プロファイリングツールというらしい)
rack-mini-profiler
ViewのレンダリングやActiveRecordの問い合わせにかかる時間などを計測してくれる

gem 'rack-mini-profiler', require: false

チーム開発であれば、デフォルトfalseにしておいたほうがいいとか..
その場合は、config/initializers以下に下記のファイルを作る

config/initializers/rack_profiler.rb
if Rails.env == 'development'
  require 'rack-mini-profiler'
  Rack::MiniProfilerRails.initialize!(Rails.application)
end

bundle installして、プロセスの再起動を行う

するとページの左上に xx.ms という数字が現れる
数字をクリックすると、ページとアクションごとにどのくらいの時間がかかっているか、sqlが発行されているかがわかるようになっている
スクリーンショット 2018-10-20 14.40.04.png
左下の share をクリックするとさらに詳しい情報がわかる

スクリーンショット 2018-10-20 14.47.04.png ※サンプルデータは処理が少ないので↑のような形だが、無駄なクエリが走っていないか、などページとアクションごとに可視化される

googleの検証ツールも優秀

検証ツールの中の Newwork タブでレンダリング速度など測定可能
スクリーンショット 2018-10-20 14.51.45.png

一番下に全体の表示速度を表示してくれる
スクリーンショット 2018-10-20 14.54.00.png

TTFB(Time To First Byte)も参考になる
最初の1バイトでリクエストを投げてから返ってくるまでの速度らしい
Googleはこの部分が 200ms までで返ってくることを推奨している模様
スクリーンショット 2018-10-20 14.51.34.png

### おまけ
[google PageSpeed Insights]
(https://developers.google.com/speed/pagespeed/insights/)

  • PageSpeed InsightsはURLを入力するだけで、モバイルとPCそれぞれの速度計測と課題を提示してくれる

これから調べること

  • 他のプロファイルツール
  • 実際の速度改善の施策、できること
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?