<分区>
Possible Duplicate:
Virtual Functions and Performance C++
这是否正确,类成员函数比简单函数花费更多时间?如果使用继承和虚函数呢?
我试图将我的函数收集到一个简单的接口(interface)类中(只有成员函数,没有数据成员),看来我浪费了时间。 有办法解决吗?
附言我正在检查 gcc 和 icc 编译器并使用 -O3 选项。
标签 c++
<分区>
Possible Duplicate:
Virtual Functions and Performance C++
这是否正确,类成员函数比简单函数花费更多时间?如果使用继承和虚函数呢?
我试图将我的函数收集到一个简单的接口(interface)类中(只有成员函数,没有数据成员),看来我浪费了时间。 有办法解决吗?
附言我正在检查 gcc 和 icc 编译器并使用 -O3 选项。
最佳答案
非静态成员函数有一个额外的参数,它是调用函数的对象(指针或指向它的引用)。这是一个开销。如果函数是虚拟的,那么在多态调用的情况下还有一个小的间接寻址,即,将函数索引添加到虚拟表基址偏移量。这两个“开销”都可以忽略不计,除非分析器说这是你的瓶颈,否则你不应该担心它。它很可能不是。
关于c++ - 类成员函数与速度方面的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474679/