尝试理解g ++ / cpu如何在运行时处理整数。
我正在测量以下功能运行的时间:
template<class T>
void speedTest() {
for(T d=0;d<4294967295u;d++)int number;
}
这个简单的方法将多次运行uint32_t的最大值的哑循环
当我打电话时:
speedTest<uint32_t>();
该软件平均需要8.15秒,但是当我打电话时:
speedTest<uint64_t>();
该软件平均需要10.35秒。
为什么会这样?
答案 0 :(得分:3)
一些可能的原因:
int number;
(可能只是for(T d=0;d<4294967295u;d++);
)您可以通过提供一些装配来继续您的调查/练习。