[英]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.