12

ボトルネックを特定できるように、WCF サービスのプロファイルを作成する方法を見つけようとしています。
私はオンラインで少しの情報を見つけましたが、私がどこにいるかについての事前の知識を前提としているものは何もありません.

おすすめの無料ツールは?

- visual studio tools
- clrprofiler 

これは、 vsperfcmd.exeを使用して wcf サービスのプロファイルを作成したときに見つけた情報です。これによると、非常に単純ですが、開始する場所のギャップを埋める必要があります。私の想定では、VsPerfCLREnv と VsPerfCmd を、私の wcf サービスをホストするサーバーにコピーし、よくわからないいくつかの構成手順を実行することです。また、各呼び出しのパフォーマンスを評価するために呼び出しスタックを確認する方法もよくわかりません。

clrprofiler は少し単純に見えます。clrprofiler.exe をサーバーにコピーしFile->Profile Service、name コマンドと start/stop コマンドを追加するとします。(これはわかりやすい名前ですか、ファイル名ですか、それともサービスの表示名ですか?) サービスに対してテストを実行すると、clrprofiler でコール スタックを確認できると思います。その音は正しいですか?

[編集]
これはテスト サーバー上にあるため、ネットワークのテストにはあまり興味がありません。また、これは複数の開発者が参加する大規模な wcf プロジェクトであり、監視のみを目的としてプロジェクトを変更することはできません。パフォーマンス。その中の実際のメソッドのパフォーマンスに注目したいと思います。

開始する際の支援は大歓迎です。

4

5 に答える 5

6

WCF の場合、チャネル スタックでさまざまなことが発生するため (セキュリティ、逆シリアル化、フォーマットなど)、コードをプロファイリングするだけでは十分ではありません。詳細レベルで WCF トレースを使用してから、サービス トレース ビューアーを使用して、メッセージ処理の各ステップでの所要時間を視覚化することをお勧めします。WCF トレースの構成と使用方法については、こちらを参照してください。これは、WCF の問題を診断するのに最も役立った唯一のものです。

もちろん、他のすべてのコード プロファイリング、DB プロファイリングなども有効なアプローチです。SoapUIなどのツールを使用して、ネットワーク通信とクライアント側のパフォーマンス オーバーヘッドをテストし、よりエンドツーエンドのベンチマークを行うこともできます。

于 2010-10-15T00:26:13.170 に答える
5

誰かが役立つかもしれないと私が学んだいくつかのこと:

ローカル ネットワーク上であっても、サービスをリモートでプロファイリングすることはできません。プロファイラーは、サービスと同じマシンで実行されている必要があります。(これは実際に理解するのにかなりの時間がかかりました。あなたには明らかかもしれませんが、詳しく説明されていなかったので、私はそれを試み続けました)

WCF サービスのプロファイリングに Visual Studio が機能しませんでした。私は VS プロファイラー チームから少し助けを得ることができましたが、実用的な解決策が得られることはありませんでした。

VS はプロファイラーの接続と切断に時間がかかり、多くの場合、バイナリを計測して破損した状態のままにしました。

.net バイナリにはメソッドのメタデータが含まれているため、インストルメント化する必要はありません。これは、Visual Studio がインストルメント化しようとしている私のバイナリをホースし続けたことに奇妙です。

VS スタンドアロン プロファイラーも試しましたが、これは使用が非常に複雑で、サーバーの再起動が必要です。

(チームからプライベート ビルドを取得した後) 内部プロファイラーを動作させることになったので、WCF サービスで動作するように設計されたプロファイラーがいくつあるかはわかりません。

私は実際に WAS サービスを監視するようにプロファイラーを設定し、追加のバイナリをプロファイラーに追加しました。

プロセス エクスプローラーは、プロファイラーが接続されているかどうかのトラブルシューティングに役立ちます。これを使用して inetinfo.exe 環境を調べます

于 2010-11-29T22:26:03.657 に答える
1

デバッガーで実行できますか?

シンプルで昔ながらの、うまく機能する方法に耐えられますこれが1つです。

于 2010-10-14T21:55:34.360 に答える
1

Mikeのコメントに加えて、組み込みのWCFパフォーマンスカウンターを使用して、パフォーマンスに関連するいくつかのメトリックを確認できます。また、WCFトレースで呼び出し時間を確認することもできます。どの操作が「遅い」かがわかれば、通常、このような汎用プロファイラーを使用するよりも、これらの操作にカスタムのタイミング/ロギングコードを追加する方が簡単です。これは、商用プロファイラーで働いていた人から来ています。

于 2010-10-15T00:13:28.930 に答える
1

調べる必要があるツール: svctracelogviewer (そして、サービスとクライアントの両方でトレースをオンにします)。負荷をシミュレートする (および分析を行う) ための SoapUI と、優れた HTTP スニファー/診断ツールである Fiddler。

于 2010-10-15T06:16:31.790 に答える