c++ - C/C++ 更快地调用函数数组

标签 c++ performance

亲爱的大家, 我有一个 C++ 程序应该尽可能快。 特别是,有一个关键部分的工作原理如下:

有一个变量D,范围在[0,255],基于它的值 它调用其指针存储在数组 F(具有 255 个元素)中的函数。 即,F[D] 给出了指向要调用的函数的指针。 这些函数非常简单,它们执行很少的表达式或/和赋值(没有循环)。

我怎样才能更快地做到这一点?

我可以复制函数中的代码。我不需要函数调用的特性(我正在使用它们,因为它更简单)。 我的目标是消除因调用函数而导致的低效率。

我考虑使用 Switch/case。 每个case的代码就是对应函数的代码。 有更快的方法吗?

最佳答案

switch/case 可能更快,因为编译器可以进行更具体的优化,并且与调用函数指针相比​​,还有代码局部性等其他因素。但是,您不太可能会注意到性能大幅提升。

关于c++ - C/C++ 更快地调用函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482519/

相关文章:

c++ - 我可以将 vector 转换为 OpenCv 矩阵吗?

c++ - 静态方法和单元测试

c++ - Visual Studio 2013 中的 Lua C API 堆栈可视化器/查看器

performance - 为什么最大的内容绘画几乎是 4 秒?

performance - 阻塞与非阻塞 winsock 的速度/性能特征

sql - SQL Server 上的慢更新,即使没有记录更新

.net - 如何从 clr 程序集返回 char* 数组?

c++ - 在 C++ vector 中平均重复属性的最佳方法

performance - 优化不同大小的矩阵乘法

c# - 调整 List<T> 的容量