最快的C ++信号/ Slot Lib没有依赖性

时间:2010-03-10 16:08:03

标签: c++ signals signals-slots

我将使用信号和插槽向上/向下传递5-10个分层对象的数据。这应该导致每秒几千个信号。这是“我点击一个按钮”的形式。我的所有物体也会在每100毫秒的时间内通过计时器发出信号,这样他们就可以进行一些处理了。

什么是最快的C ++信号/插槽实现,它很小,不需要其他库,如boost。 (我需要保持二进制文件的总大小)。

我见过libSigC ++,sigSlot,Cpp-Events,

3 个答案:

答案 0 :(得分:6)

pbhogan的信号怎么样:

https://github.com/pbhogan/Signals

它超级快(使用由Don Clugston编写的FastDelegate代码 - Ismael也提到过),并且它非常易于使用。我一直在使用它已经有一段时间没有问题了。

答案 1 :(得分:4)

信号库的设计通常是为了便于使用,而不是考虑到重要的性能。在追求快速执行时,您可以检查article可能有用。

在你的情况下,我会开始尝试更简单的,比如sigslot。但是在这种情况下我不会使用信号库......可能是某种消息队列,带有某种时间戳。​​

答案 2 :(得分:0)

即使是最复杂且功能最丰富的信号/插槽库也非常轻巧。在大多数情况下,信号发射的速度与虚拟函数调用相当。对于模板驱动的库,例如boost :: signals和libsigc ++,你获得的性能与你传递函数指针的效果基本相同。