假设代码打击是我的班级。它是简化的而不是完整的。让我们专注于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
但我也听说编译时局部变量甚至可能不存在。所以不知何故,开销也不存在。
好吧,实际上这个运算符的速度对我的应用程序的速度没有任何影响。我只是想知道编译器中立的答案。当这种情况来临时。我应该让它成为数据成员还是局部变量?