【发布时间】:2014-03-14 22:25:22
【问题描述】:
在限制为C++03 的环境中,boost::signals2 与boost::function 和boost::bind 一起用于在组件之间实现简单的消息传递系统。它工作得很好,我对此没有任何问题。
但是,在另一个完全支持C++11 的环境中,boost::signals2 对于非常简单的应用程序是否过度杀伤?
为了澄清,我的意思很简单:
- 单线程
- 所有信号都有返回类型
void
性能是此应用程序的关键,因此应用程序不需要的 boost::signals2 的所有奇迹可能弊大于利。
现在,只有一个 std::vector<std::function> 来处理这个问题,如果认为合适的话,切换到诸如 boost::signals2 之类的东西会非常简单。
【问题讨论】:
-
那么您的分析器从
Boost.Signals2告诉您有关 CPU/内存使用量的信息是什么?它甚至是瓶颈吗? -
如果性能是关键,我通常会发现自己不实现可订阅事件或可观察对象。这总是与处理不同的层。
-
正如 Andrei Alexandrescu 所说...
The only good intuition: "I should time this."C++ 的三个优化技巧slideshare.net/andreialexandrescu1/… -
看来这个问题已经归结为,停止理论,开始基准测试。感谢您的帮助。
-
@IgorR。谢谢,在阅读了这些内容和其他一些内容之后,我最终选择了 boost::signals2 :)
标签: c++ c++11 boost signals-slots boost-signals2