在this paper中,已考虑两种情况来比较算法 - 整数和浮点。
我理解这些数据类型在存储方面的差异,但不确定为什么这些数据类型存在差异。
为什么以下两种情况之间的性能存在差异
据我所知,在这两种情况下,速度比较都归结为,问题是为什么这些速度可能会有所不同?
答案 0 :(得分:3)
该论文在第4节“结论”中指出,“在CPU上合并整数的执行时间比CPU上浮点的执行时间快2.5倍”。测量中使用的英特尔Nehalem Xeon E5530令人惊讶。但是,本文未提供有关合并,编译器版本或其他使用的工具中使用的源代码,特定指令或处理器功能的信息。如果有效地使用处理器,则整数合并与浮点合并的性能应该只有非常小的差异。因此,测试中使用的浮点代码似乎效率低下,并且是使用不良工具的指标,而不是处理器的任何缺点。
答案 1 :(得分:0)
合并排序有一个内部循环,有很多指令。比较花车可能会稍贵,但只需1-2个周期。您将不会注意到更大量的合并代码之间的差异。
与您在该算法中执行的所有操作相比,比较浮点数是硬件加速和快速的。
此外,比较可能会与其他指令重叠,因此挂钟时间的差异可能正好为零(或不是)。