是否可以通过将成员函数的本地存储分配移动到其类来获得性能?

neu*_*rte 0 c++ performance pointers memory-management dereference

假设我有以下C++类:

class Foo
{
  double bar(double sth);
};

double Foo::bar(double sth)
{
  double a,b,c,d,e,f
  a = b = c = d = e = f = 0;
  /* do stuff with a..f and sth */
}
Run Code Online (Sandbox Code Playgroud)

函数bar()将在循环中被调用数百万次.显然,每次调用时,都必须分配变量a..f.通过使变量成为Foo类的a..f成员并在函数的入口点初始化它们,我能获得任何性能吗?另一方面,a..f的值将通过this->取消引用,所以我想知道它是否实际上不是可能的性能下降.通过指针访问值是否有任何开销?谢谢!

sbi*_*sbi 6

在所有体系结构中,我知道内置函数的分配/释放是通过操作堆栈寄存器来完成的.我想这与函数的其余部分相比几乎没有时间.

如果您认为递增/递减处理器寄存器中的值可能有所帮助,那么您可以进行微优化.它们应该在发货之前作为最后的东西完成(并且作为所有优化)它们应该通过测量而不是通过猜测来指导.