1

我们的程序使用一个 out-proc COM 服务器并在其接口上进行数千次调用。这需要非常非常长的时间——比如大约 50k 呼叫需要一分钟。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 对象将比进程内的对象需要更多的编组等。

如果您可以让供应商提供帮助,有两种可能的选择。

  1. 要求他们为您提供一个进程内版本 (dll),然后您可以将其托管在 COM+ 中并生成多个实例(如果合适)并且可以提供帮助。
  2. 按照 Basilevs 的建议去做,并要求他们更新 api,这样您就可以减少调用次数,从而减少流量。

节省您所说的那种流量的主要方法是 COM+,但这不能与进程外 COM 对象一起使用。

于 2009-10-19T18:38:53.857 回答