回调函数的常见实现方式及速度比较
回调函数实在是用得太广泛,回调函数又有多种实现方式,如:
1、 静态函数
2、 虚函数
3、 函数对象
4、 传统c函数,通过一个void *传递对象地址,内部强制转换
5、 fastdelegate
6、 Tr1::function + bind
7、 Boost::Function + bind
基本上速度是按照由快到慢的顺序排列的,就是
1 > 2 > 3 > 4 > 5 > 6 > 7
其实234速度很接近,有的时候函数对象效率更高一点,基本上越是高级的方法使用起来越方便,但速度越慢,越是传统的方法速度越快,呵呵,看来做server端程序要综合考虑效率太新的东西还是要少用啊,还是用传统的方法比较靠谱一点,当然如果调用次数不多的地方,使用更方便的方法还是好一些,毕竟我们要综合权衡,而不能死板恪守教条。