2

COM 相互運用性がソフトウェアのボトルネックになっているかどうかを判断しようとしています。MSDN のこの記事はhttp://msdn.microsoft.com/en-us/library/ms998579.aspx#scalenetchapt15_topic11に役立ちます。しかし、マーシャリングの数がパフォーマンスに影響を与えているかどうかを判断するための「通常」または「高い」値の基準点が実際にはありません。MSDN がこの記事の他のパフォーマンス カウンターに与えるように、このパフォーマンス カウンターのしきい値を教えてください。これはハードウェアおよびアプリケーション固有の質問であることは承知していますが、何か助けていただければ幸いです。

4

1 に答える 1

1

マーシャリングの特定のしきい値を示すことはできないと思います。アプリケーションに依存します。すべきことは、各通話にかかる平均時間を測定することです。アンマネージ コードへの一連の呼び出しを行い、時間を計測するだけのテスト アプリケーションを作成します。次に、アプリケーションの "おしゃべり" カウンターを使用して、マネージド コードとアンマネージド コード間の切り替えの総コストを見積もることができるはずです。

私は数年前にこの正確なことをしなければなりませんでした。アンマネージ DLL を使用して、データのチャンクから値を読み取っていました。呼び出しを測定したところ、呼び出しの数が多いために比較的コストがかかることがわかったので、単一の呼び出しを行ってデータのチャンクを取得し、マネージド コードでそのデータから値を抽出しました。コードを書くのは大変でしたが、速度は大幅に向上しました。

于 2010-01-01T20:02:47.897 に答える