原始类型的表现

时间:2014-01-03 09:48:24

标签: c# performance types

我想知道不同原始类型的性能,主要是在C#中。现在,我意识到这并不是严格意义上的语言,因为机器已针对处理类型进行了优化。

我已阅读以下两个问题:

然而,我需要做一些澄清。

我知道在32位计算机上,intshortbyte都快,因为int是平台本机的。{1}}。但是,在64位系统上会发生什么?使用long代替int

是否更好,性能更好?

此外,浮点类型会发生什么? doublefloat更好吗?

答案可能是也可能不是语言特定的。我假设不同语言在这个问题上没有太多差异。但是,如果有,那么解释原因会很好。

1 个答案:

答案 0 :(得分:3)

实际上在大多数情况下,你会在比你的机器架构更小的任何东西(即int,short,32位字节)上获得相同的性能,因为内部代码只使用32位值来处理它们。

同样适用于64位系统,没有理由不使用int(因为它们将以与64位长的运行速度相同,比32位长的运行速度更快),除非您需要额外的范围。如果你考虑一下 - 64位系统必须快速运行32位代码,否则没有人会进行转换。

较小的尺寸仅在将基元的多个副本打包到诸如数组的结构中时使用。在那里你可以通过解压缩来获得一个小的减速,但在大多数情况下,这将通过更好的缓存/内存一致性等因素得到补偿。