2011-09-05 7 views
8

私は、C#(.NET 4.0)のWinFormアプリケーションを使用して、Linuxベースのアプリケーションと継続的に通信し、いくつかのデータを1秒に数回受信します。私は 'clr.sll!StrongNameSignatureVerification'がこのアプリケーション用に多くのCPUを消費しているのを見て、このWinFormアプリケーションを微調整してCPU使用量を減らしています。私はこれを見つけるためにProcess Explorerを使いました。いくつかのGoogleの検索では、CLRが厳密な名前のアセンブリ(CLRを望んでいない)かどうかを検証しようとしているため、 'clr.sll!StrongNameSignatureVerification'が起動しています。clr.sll!StrongNameSignatureVerification CPU消費量

この後、私はこのWinFormアプリケーションの署名検証をスキップするために、Microsoft SDKのsn.exeを試しました。私はこれが厳密に名前のついたアセンブリではないというエラーを受けました。 このアプリケーションに署名していないか、このアプリケーションの署名を検証するためにCLRを呼び出す必要がある設定を覚えていないので、私は驚いていませんでした。

.NETアプリケーションのセキュリティでの私の経験はほとんどゼロですので、私はこの問題についていくつかの助けを求めています。任意のポインタが役立ちます。

ありがとうございます。それは数千バイトを超えるかどうclr.sll後のオフセット!StrongNameSignatureVerification、

+0

アプリケーションをプロファイルするために何を使用していますか? – Iridium

+0

ANG Profiler from RedGate – silverspoon

+1

詳細を追加する必要があると思います。このStrongNameSignatureVerification関数がどこから呼び出されているかを示す完全なコールスタック。また、関数は何回呼び出されていますか?明らかに、このメソッドを呼び出すのに2秒かかりますが、一度しか起こっていない場合は、プロファイラのホットスポットとして表示されることがありますが、長期的にはパフォーマンスに大きな影響を与えません。 (もちろん、1秒間に何百回も呼び出されているのであれば、別の問題です)。 – Iridium

答えて

2

ルックは、それはおそらくシンボルはプロセスエクスプローラにロードされていないと、問題がCLRの他の方法であるかもしれないことを意味します。 dll。

関連する問題