読者です 読者をやめる 読者になる 読者になる

MEDLEYオフィシャルブログ

株式会社メドレーのオフィシャルブログです。

Webアプリケーションの遅い処理を特定する話

こんにちは、開発本部で「ジョブメドレー」の開発を担当している稲本です。

先日、社内で行っているTechLunchという勉強会で「Webアプリケーションの遅い処理を特定する話」という話をしました。

タイトルの意味する範囲が広めなので概要を記載すると以下の通りです。

  • NewRelicから処理速度を見ていく
  • ChromeDeveloperTools処理速度を見ていく
  • RoR関連のプロファイラから処理速度を見ていく

上記の様にClientからServer, Applicationまでプロファイリングを行い遅い処理を特定していく流れの話をしました。

なぜこの話をしようと思ったのか

弊社ではフロントエンドエンジニア、サーバサイドエンジニアなどのポジションが明確には分かれておらず、どのバックグラウンドを持った人間も両方開発に携わる方針のため、エンジニア同士が、お互いの得意分野を補い合いながら、各々業務や学習を通して理解を深めるようにしています。

ただ「ジョブメドレー」チームでは、現状パフォーマンス対策に関しては得意な人が対応する傾向にあります。

そのため得意では無い人へも、どのように調べていけば良いかを共有し、少しでもエンジニア間の知識のギャップを小さくできればと思いフロントエンド〜サーバサイドまでのプロファイリングというテーマで発表しました。

話した内容

先述の取り話した内容は以下の通りです

  • NewRelicから処理速度を見ていく
  • ChromeDeveloperTools処理速度を見ていく
  • RoR関連のプロファイラから処理速度を見ていく

NewRelicの項ChromeDeveloperToolsの項では、ユーザーがBrowserを介してサービスを表示するまでの間に、どのような処理にどれぐらいの時間がかかっているか、それを見る方法について説明しました。

RoR関連のプロファイラの項では、サーバーアプリケーションで実行する処理の速度の調査方法について説明しました。

※発表資料はこちら

まとめ

今回、TechLunchで各種プロファイリング方法について紹介しました。

  • ブラウザを経由したパフォーマンスはNewRelic, ChromeDeveloperToolsなどで見ることが出来る
  • アプリケーションのパフォーマンスはrack-mini-profiler, peek/rblineprof, stackprof
  • 正しく問題を把握することで誤った解決方法を選択してしまうリスクを回避できる

ということについて話をしていきました。
個々のツールの使い方については、調べれば良質な文書が沢山ある中で、実運用上どのように調べれば良いのかにフォーカスし、その一例を紹介出来たのではないかと思います。

今回は触れていませんが、これに限らずサーバーリソースから見るボトルネックの調査方法や、負荷試験方法などについてもどこかで触れて行ければ良いなと考えています。

最後に

メドレーではエンジニアを積極採用しています! ご応募お待ちしています。

www.wantedly.com

www.wantedly.com

www.wantedly.com

www.medley.jp