![](/img/trans.png)
[英]Type of unsigned long is different from uint32_t and uint64_t on Windows (VS2010)
[英]why a uint32_t vs uint64_t speed difference?
试图了解有关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秒。
为什么会这样呢?
一些可能的原因:
int number;
,都可以完全优化掉这种无副作用的循环int number;
(可能只是for(T d=0;d<4294967295u;d++);
) 您可以通过提供一些程序集来继续进行调查/练习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.