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->取消引用,所以我想知道它是否实际上不是可能的性能下降.通过指针访问值是否有任何开销?谢谢!
在所有体系结构中,我知道内置函数的分配/释放是通过操作堆栈寄存器来完成的.我想这与函数的其余部分相比几乎没有时间.
如果您认为递增/递减处理器寄存器中的值可能有所帮助,那么您可以进行微优化.它们应该在发货之前作为最后的东西完成(并且作为所有优化)它们应该通过测量而不是通过猜测来指导.