我们的程序使用一个 out-proc COM 服务器并在其接口上进行数千次调用。这需要非常非常长的时间——比如大约 50k 呼叫需要一分钟。COM 组件供应商说调用本身非常快,问题在于与进程外调用相关的开销。
在这种情况下,有什么可以调整以减少开销的吗?
我们的程序使用一个 out-proc COM 服务器并在其接口上进行数千次调用。这需要非常非常长的时间——比如大约 50k 呼叫需要一分钟。COM 组件供应商说调用本身非常快,问题在于与进程外调用相关的开销。
在这种情况下,有什么可以调整以减少开销的吗?
寻找减少呼叫次数的方法。例如,如果接口允许,您可以考虑替换如下代码:
for a in c..d {
array[a]=obj.get(a)
}
和:
obj.getArray(array)
我真的不认为没有供应商的帮助可以做很多事情。因为就其性质而言,进程外的 com 对象将比进程内的对象需要更多的编组等。
如果您可以让供应商提供帮助,有两种可能的选择。
节省您所说的那种流量的主要方法是 COM+,但这不能与进程外 COM 对象一起使用。