こんにちは、決済サービスの開発を担当しているtaniguchikunです。 本記事ではJetBrains社のdotTraceというツールを使用して、パフォーマンス向上にどう向き合うかを書きたいと思います。
準備物
- JetBrains社のdotTraceをダウンロードしてインストールします。 公式ドキュメントは以下URLになります https://pleiades.io/help/profiler/dotTrace_Introduction.html
- ローカル環境でIISサーバーを構築
- パフォーマンス計測を行う任意のサービスが動作するように構築。 ※ Webアプリ以外のコンソールアプリ等でもパフォーマンス計測を行う事が可能です
設定方法
- dotTraceを起動してください
- 「General」を選択してください
- 「New Proccess Run」項目から「No run configurations + Add」を押下すると下図のように表示されます
- 自分がパフォーマンスを行うアプリのタイプ毎に選択してください。 ここではIISサーバーにデプロイしたアプリを例にするので「IIS」を選択します
- 「Open URL」のチェックボックスにチェックを入れて、テキストボックスがあるのでURLを入れてください
- 「Name」ラベルの右にあるテキストボックスにはアプリケーション名(任意)を入力してください
- 入力が済んだら「Save」ボタンを押下して保存してください
計測手順
- 「Start」ボタンを押下するとブラウザに設定したURLのサイトが表示されます
- パフォーマンス計測を行いたいページに遷移やサーバーにWebリクエストを行いレスポンスを確認する
- 「Stop」ボタンを押下してパフォーマンス計測を終了すると解析結果が表示されます
- リクエストのスレッドを選択してフィルタリングを行い、コールスタックからボトルネックとなっている関数をする事が出来ます
- 以上から分析することで、アプリケーションの問題点を特定しパフォーマンス改善に役立てることができます。
改善手順
- 「Hotspots」や「Call Tree」でメソッドの処理時間を確認していただき、問題となっている箇所の改善策を検討して改善に繋げていただけたらと思います
- DBにリクエストしたクエリ等は「SQL Queries」で確認する事ができます
- クエリのパフォーマンスについてはSSMSで推定実行プランを確認しながら、問題となっている箇所の改善策を検討して改善に繋げていただけたらと思います。
まとめ
以上を持ちましてdottTraceを使用したパフォーマンスの改善について確認していただきました。 このツールを活用することで、アプリケーションのボトルネックとなっている箇所を判断する事ができるようになるかと思います。 ぜひ使ってみてアプリケーションの改善に役立てていただければと思います。
We are hiring!!
ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!