美好的一天。
CppApp和CsApp事件句柄设计已更改。适用于工业应用。
旧设计。
来自CppApp的CsApp拉取事件。 CppApp有很多活动。因此,我们在CsApp中创建了两个线程来处理来自CppApp的事件。它工作得非常好。
新设计。
CsApp和CppApp com事件(火灾事件方法)设计而不是推/拉事件方法。在Cpp IDL文件中只创建了一个指针,但它仍然可以处理两个fire事件函数,我们没有更改CppApp事件相关的部分代码。 这意味着现在CppApp和CsApp之间的一个Com事件通道。
测试结果。 我们在模拟模式下进行了测试并且它运行良好。但到目前为止还没有足够的真机在线测试。特别是在工业在线生产环境中有很多活动 我们担心是否存在从CppApp到CsApp延迟的一些Com事件发送。
我是否可以研究有关行业应用的Com Event性能的资源?
非常感谢此处。
BR! 纳米
答案 0 :(得分:1)
我不清楚“我们在模拟模式下测试它和它是否工作得很好”和“在工业在线生产环境中进行真机在线测试”之间有什么区别:
我们担心是否有一些Com事件从CppApp发送到CsApp延迟
好吧,当COM在进程中使用而不是进程间或进程外时COM更快:当COM对象是一个DLL加载到与使用它的任何进程相同的进程中时。
我是否可以研究有关行业应用的Com Event性能的资源?
我不知道;对于它的价值,文章Events vs. Callbacks说,
效果问题
当表现受到威胁时,它会 通常值得做额外的事情 创建自定义所需的工作 回调接口。通过雇用 在回调中提前绑定 接口连接代码,意义重大 可以改进 大批量或过程中的组件。 根据设计,事件接口不是 vtable bound,因此, 在大多数情况下比 可比的早期回调 接口
当然,在任何性能问题上, 衡量自己需求的唯一方法 是实验,基准测试和测试。 尝试各种排列 你自己做数学。如果你 真正关心获得绝对 最后冲刺速度,然后做 测试是证明什么的唯一方法 工作,无论承诺是什么 制成。
that section of MSDN中的其他文章也与绩效相关,例如Understanding and Using COM Threading Models