【发布时间】:2018-05-21 00:30:13
【问题描述】:
我担心程序的最终性能,同时我不想在代码中过分或不必要地惩罚程序员。
以下面的代码为例,它将返回相同的getPosition方法的值10000次:
vector <int> arr;
for (int i=0; i<10000 ; i++)
arr.push_back(i + window.getPosition().x)
在这种特定情况下,我知道window.getPosition().x 将始终返回相同的值。
为避免性能损失,我应该将代码更改为,例如:
vector <int> arr;
int x = window.getPosition().x;
for (int i=0; i<10000 ; i++)
arr.push_back(i + x);
这总是涉及额外的程序员的关注。
或者有什么智能缓存,哪里不用担心?
【问题讨论】:
-
如果您确定该函数在这种情况下将充当常量,那么它实际上是等效的。我也相信常数比大多数函数计算时间短。
标签: c++ performance compiler-optimization