2009-10-19 10 views
6

ネットワークの魔法(WMI、Pingなど)が多い.NET Windowsサービスがあります。リストは非常に長くなります。可能な限り多くの容易さと詳細さ、アプリケーションで使用される帯域幅の合計、コード内の各部分をプロファイルしたいと思います。.NETアプリケーションのネットワーク使用率をプロファイルする方法

これを行うのに役立つツールはありますか?たとえば、Antsプロファイラはメモリプロファイリングとプロセッサ使用率プロファイリングに役立ちます。しかし、ネットワークプロファイリングではあまり効果がありません。ネットワークプロファイリングのANTのようなものはありますか?もしそうでなければ、この情報を得ることに関して私の選択は何ですか?いくつかの回答に応じて

ありがとう:それは直接(私は可能だとは思わないもの)のコードにリンクすることができないならば、それはする必要がありますどのようなツールの明確化

ために追加プロセスが使用するネットワークトラフィックの追跡(ファイルまたはデータベースへのロギング)を数日間無人で実行できます。プロセスを直接指定することができなければなりません(wiresharkは実行できません)。しかし、Microsoft Network Monitorはこれを行うことができますが、それはパフォーマンスの問題のために使用できないほど多くの(フレームごとの構文解析が)非常に多くなります(数時間後にはすでに100万のフレームが集計されています。その物をExcelやデータベースにコピーしようとすると、コピーだけで30分以上かかる)。

本当に単純なことのように思えますが、欲しいことをするツールを見つけるのは驚くほど苦労しています。

答えて

1

ユーティリティWiresharkを使用して、サービスが実行されているマシンから出てくるすべてのパケットをキャプチャできます。その中のコンテンツに基づいてそれらのパケットをフィルタリングして、気にするパケットに限定することができます。その情報を使用すると、探しているメトリックを見つけることができます。

+0

おそらく動作する可能性がありますが、それは簡単ではありません。あなたがこのようなもののために巨大になるであろうプロセスによってフィルタリングすることができるようには見えません。第2に、ANTsプロファイラがメモリとプロセッサのパフォーマンスを行うように、コードにコードをまったくリンクしません。そう、はい、これは一歩ですが、私はもっと探しています。 – Mark

+0

これは難しい理由は、プロセス外の情報を追跡し、インプロセス属性に関連付けようとしているためです。これらの他のツールがうまく機能する理由は、すべてが管理されたインプロセスコードに関連しているからです。あなたがWCFを使用している場合は、少し上手く追跡できるかもしれませんが、あなたはまだOoPの問題に取り組んでいます。 –

1

私はかなりSocketSniffが好きです。これは、単一の実行中のプロセスに接続し、すべてのソケット関連のトラフィックを表示します。 WireShareのような優れたデコード機能はありませんが、多くのノイズも除去されます。

関連する問題