比较char数组与uint8_t数组和int8_t数组的访问时间

时间:2014-08-13 14:14:13

标签: c

我观察到访问char数组中的数据项所花费的时间比访问int数组中的数据项少得多。我猜这是因为int的大小大于chars的大小,因为"内存控制器" (控制记忆的东西,我不知道技术术语)必须移动更大的距离。

uint8_t char和int8_t具有相同的大小。因此,将数据存储在哪种数据类型的数组中将提供最快的访问时间。?

我创建了一个程序,用于在250000桶大小的哈希表中存储150000个单词。当哈希表数组的数据类型为int时,加载时间为.16秒,但是当数据类型为char或uint8或int8时,加载时间在.08到.11秒之间变化。所以我的测试没有结果

1 个答案:

答案 0 :(得分:1)

对此没有一般性的答案。

它100%取决于您的硬件,编译器,操作系统,电源电压和月相。至少其中一些。

C没有指定该级别的内容。

在具有字节可寻址存储器的典型(现代)计算机上,char将为8位(“一个字节”)。这意味着uint8_t将成为unsigned char的别名,int8_t将成为signed char

因此,uint8_tint8_tchar的访问时间将相同,因为它们基本上只是具有不同符号语义的相同类型。