c++ - 类成员函数与速度方面的函数

标签 c++

<分区>

Possible Duplicate:
Virtual Functions and Performance C++

这是否正确,类成员函数比简单函数花费更多时间?如果使用继承和虚函数呢?

我试图将我的函数收集到一个简单的接口(interface)类中(只有成员函数,没有数据成员),看来我浪费了时间。 有办法解决吗?

附言我正在检查 gcc 和 icc 编译器并使用 -O3 选项。

最佳答案

过早的优化是万恶之源

非静态成员函数有一个额外的参数,它是调用函数的对象(指针或指向它的引用)。这是一个开销。如果函数是虚拟的,那么在多态调用的情况下还有一个小的间接寻址,即,将函数索引添加到虚拟表基址偏移量。这两个“开销”都可以忽略不计,除非分析器说这是你的瓶颈,否则你不应该担心它。它很可能不是。

过早的优化是万恶之源

关于c++ - 类成员函数与速度方面的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474679/

相关文章:

c++ - 如何在 SDL2 的窗口标题中使用重音字符?

c++ 将存储在 std::vector 中的数据传递给 c_func(void* data)

c++ - VC++调试未初始化变量的方法

c++ - g++ 在构建点云库时未定义对符号 '__cxa_free_exception@@CXXABI_1.3' 的引用

C++ Armadillo : Get the ranks of the elements in a vector

c++ - "invalid use of non-static data member"当通过友善的输出运算符访问模板化类的字段时

c++ - float 转换 C++

c++ - 使用 void 指针参数调用函数的安全方法

c++ - 什么相当于 C++ 中 D 的 taskPool.parallel()

c++ - std::map 的 char[5] 键可能包含空字节