假设代码打击是我的班级。它是简化的而不是完整的。让我们专注于operator().
class Delta{
public:
long long operator()() {
auto now = steady_clock::now();
auto delta = (now - last).count();
last = now;
return delta;
}
private:
steady_clock::time_point last;
};
operator()每秒可能被调用数千次。我只是想知道频繁分配和解除分配变量now,delta可能会损害operator(). 如果我想最大限度地提高速度,那么制作now和delta数据成员会更好吗?class Delta但我也听说编译时局部变量甚至可能不存在。所以不知何故,开销也不存在。
好吧,实际上这个运算符的速度对我的应用程序的速度没有任何影响。我只是想知道编译器中立的答案。当这种情况来临时。我应该让它成为数据成员还是局部变量?