c++ - 变量而不是类调用

标签 c++ optimization

我最近了解到,如果您将一个类的引用作为函数参数,那么将某些需要的信息片段存储为局部变量是更好的做法,而且效率更高,而不是每次需要时都访问类成员函数。

所以...

void function(const Sphere& s)
{
    //lots of calls to s.centre and s.radius
}

void function(const Sphere& s)
{
    Vector3 centre = s.centre; float radius = s.radius;
    //an equal amount of calls to centre and radius
}

有人告诉我第二种更好,但为什么呢?而且,从哪里开始更全面地研究这个问题的好地方在哪里? (请给假人看!)

最佳答案

告诉你这个的人可能认为第二个版本可能更快。

我认为这是个糟糕的建议,原因有二:

  1. 它实际上可能会或可能不会更快。这取决于编译器、代码究竟在做什么等等。
  2. 即使速度更快,这也会尖叫premature optimization .只有在分析代码并确定代码的哪一部分是整体瓶颈之后,才应该进行微优化。

关于c++ - 变量而不是类调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730076/

相关文章:

c++ - C++ 会自动将 const int 转换为 float 吗?

c++ - 颠倒句子中的词序

C++ UDP客户端问题

c++ - 整数产生十六进制值错误

c++ - 终止管家是什么意思?

javascript - 基于第 n 个元素合并数组的有效方法是什么?

C++复数乘法

c++ - 访问未初始化的值会导致性能下降吗?

c# - 任何工具说明每种方法需要多长时间运行?

python - 在 Python 中加速双循环