考虑缓存,C#中的Float vs Double性能

时间:2011-05-31 13:36:50

标签: c# performance types x86

我查了一下,可以找到很多关于浮动vs双重here是一个,而here是另一个)的表现的帖子。在大多数情况下,据说它们具有相同的性能,因为它们通过FPU转换为10-bye实数。但我仍然不相信。如果地方问题被认为是恰当的怎么办?考虑对大量位进行按位XOR计算,当数据适合高速缓存(浮点数)时,计数无0位将花费相当少的时间。使用常规(非SIMD指令)执行XOR和位数计数会使处理时间延长很多。 我试着写一些测试来确认它,但要把一切都搞定是不容易的。

一个问题是这两种类型在缓存中转换为相同的大小吗?

总的来说,我想知道是否有人可以在不同的情况下描述这两种选择的行为?

1 个答案:

答案 0 :(得分:3)

  

如果适当考虑地点问题怎么办?

仍然相同,因为那些通常没有你想象的那么高。如果你处理float和double除了复制它之外,实际上花了很多时间来计算。您的XOR示例是您认为错误的一个很好的例子。 XOR是一种简单易用的快速操作,因此一致性非常重要。对于花车,你在大多数情况下花了很多时间做数学。