1

私たちのプログラムは、アウトプロセス COM サーバーを消費し、そのインターフェイスで何千もの呼び出しを行います。これには非常に長い時間がかかります。たとえば、約 50,000 回の呼び出しで 1 分ほどかかります。COM コンポーネント ベンダーは、呼び出し自体は非常に高速であり、問​​題はアウトプロセス呼び出しに関連するオーバーヘッドにあると述べています。

そのような場合にオーバーヘッドを減らすために調整できるものはありますか?

4

2 に答える 2

2

通話回数を減らす方法を探してください。たとえば、インターフェイスで許可されている場合は、次のようなコードを置き換えることを検討できます。

for a in c..d { array[a]=obj.get(a) }

と:

obj.getArray(array)

于 2009-10-19T08:24:20.503 に答える
2

ベンダーの助けなしにできることはあまりないと思います。その性質上、プロセス外の com オブジェクトは、プロセス内のものよりもはるかに多くのマーシャリングなどが必要になるためです。

ベンダーに助けてもらうことができる場合、2 つの選択肢があります。

  1. インプロセス バージョン (dll) を提供するように依頼し、COM+ でホストして複数のインスタンスを生成し (適切な場合)、役立つ可能性があります。
  2. BAsilevs の提案に従って実行し、API を更新するように依頼して、呼び出しを減らしてトラフィックを減らすことができるようにします。

あなたが話している種類のトラフィックを保存するための主なものはCOM +ですが、これはプロセス外のCOMオブジェクトでは使用できません。

于 2009-10-19T18:38:53.857 に答える