2

我正在考虑boost::function在我的计时器管理器的实现中使用。在调度计时器 aboost::function将被传递,并且在计时器到期时将执行回调。时间将以非常高的频率(约 1000 次动作/秒)安排/取消。

但我担心boost::function可能使用的堆内存量。

例如,我知道它boost::asio使用boost::function了很多,而对库的性能要求可能非常高。

你怎么看?

4

2 回答 2

3

在我看来,开销不太可能boost::function成为计时器管理代码中的门控因素。

正确和高效地获取计时器队列、锁定和信号等待线程是更好地利用您的大脑周期。相反,这是另一个支持或类似的论点,boost::function以避免“原始”回调带来的麻烦。

于 2010-11-29T19:20:51.357 回答
2

boost::function 是一个相当小的对象。如果有的话,可能是普通函数指针大小的 2-3 倍。

于 2010-11-29T19:21:28.360 回答