我正在考虑在我的计时器管理器实现中使用boost::function
。在调度计时器中,将传递boost::function
,并且在计时器到期时将执行回调。时间将以高频率(约1000次/秒)安排/取消。
但我担心堆内存boost::function
可能会使用的数量。
我知道boost::asio
使用boost::function
很多,而库的性能要求可能非常高。
您怎么看?
答案 0 :(得分:3)
在我看来,boost::function
的开销不太可能是计时器管理代码中的门控因素。
获取计时器队列,锁定和发信号等待线程的正确和高效是一个更好的使用你的大脑周期。反过来说,这是{em>赞成 boost::function
或类似的另一个论点,以避免头痛与'原始'回调。
答案 1 :(得分:2)
boost :: function是一个相当小的对象。可能是普通函数指针大小的2-3倍(如果有的话)。
答案 2 :(得分:2)
看看this article,可能会给你一些看法。