Dynamics CRM 2011 プラグインのパフォーマンス分析

みなさん、こんにちは。

今回はプラグインのパフォーマンス分析に関するトピックをお届けします。

プラグインのリプレイ

以前プラグインのデバッグの方法をこちらの記事で紹介しました。
手順は同様ですが、今回はリプレイ機能として活用してみます。

前提 : 取引先担当者を取得するプラグインを開発しました。プラグインには
2 つのクラスが含まれており、一方は取引先担当者の全ての列を取得、
他方は名前列のみ取得するようにしています。

1. 開発したプラグインを取引先企業の更新に対して設定します。
image

2. こちらの記事を参考にして、プラグインのデバッグの準備を行います。
まずは getallContact に対してプロファイルを実行します。

image

3. 任意の取引先企業を更新します。エラーが発生するので、ファイルを
任意の場所に保存します。

image

4. Plugin Registration Tool より、 Replay Plug-in Execution または
Debug をクリックします。どちらも同じ画面が表示されます。

5. Profile Location に保存したエラーファイルを、Assembly Location
に開発した dll を指定します。Plug-in で正しいクラスが選択されている
ことを確認します。

image

6. Start Plug-in Execution をクリックします。結果に実行にかかった
時間が表示されます。

image

7. 次にプロファイル対象を getallContactwithNameOnly に変更します。

image

8. 同様の手順でエラーログ取得とリプレイを行います。

image

image

9. 実行時間が初めのものより早いことが分かります。

コンテキストの確認

プロファイルを行った際に出力されるエラーには、実際にプラグイン実行時に
システムから渡る情報が入っています。Plugin Resitration Tool で、その
中身を確認することが可能です。

プラグインのソースと Visual Studio 2010 等のデバッグ環境が無い場合に
とても便利です。

1. View Plug-in Profile をクリックします。

image

2. Log Location にダウンロードしたファイルを指定します。

image

※こちらのファイルには、実際のレコードの情報など、機密情報が
含まれていますので、取り扱いには注意してください。

3. View ボタンをクリックします。

4. データの中身がブラウザに XML 形式で表示されます。こちらを確認
することで、プラグインに引き渡される情報を確認することが可能です。

まとめ

Plugin Registration Tool のプロファイル、デバッグ、リプレイ等の機能を
利用することで、実際に処理される内容や処理にかかる時間が明確になります。

一連の処理に時間がかかる場合の切り分けに、是非ご活用ください。

- Dynamics CRM サポート 中村 憲一郎