我将使用信号和插槽向上/向下传递5-10个分层对象的数据。这应该导致每秒几千个信号。这是“我点击一个按钮”的形式。我的所有物体也会在每100毫秒的时间内通过计时器发出信号,这样他们就可以进行一些处理了。
什么是最快的C ++信号/插槽实现,它很小,不需要其他库,如boost。 (我需要保持二进制文件的总大小)。
我见过libSigC ++,sigSlot,Cpp-Events,
答案 0 :(得分:6)
pbhogan的信号怎么样:
https://github.com/pbhogan/Signals
它超级快(使用由Don Clugston编写的FastDelegate代码 - Ismael也提到过),并且它非常易于使用。我一直在使用它已经有一段时间没有问题了。
答案 1 :(得分:4)
信号库的设计通常是为了便于使用,而不是考虑到重要的性能。在追求快速执行时,您可以检查article可能有用。
在你的情况下,我会开始尝试更简单的,比如sigslot。但是在这种情况下我不会使用信号库......可能是某种消息队列,带有某种时间戳。
答案 2 :(得分:0)
即使是最复杂且功能最丰富的信号/插槽库也非常轻巧。在大多数情况下,信号发射的速度与虚拟函数调用相当。对于模板驱动的库,例如boost :: signals和libsigc ++,你获得的性能与你传递函数指针的效果基本相同。