浮点与整数性能

时间:2011-08-22 21:57:45

标签: python integer floating-point double

在开发编程语言时,区分int和float是重要的吗?我注意到在R的情况下,虽然它们允许严格的整数类型,但主要处理可以是浮点数或整数的numeric类型。是否有性能优势?

修改
我也有兴趣了解更多关于时间段(如果有的话)的情况,通过选择浮点数而不是整数来注意性能差异。

1 个答案:

答案 0 :(得分:4)

如果你在谈论性能:在大多数情况下,没有性能差异。您可能仍然可以在编译为机器代码的纯数字运算代码中测量一个,并且在没有专用FPU的硬件(即大多数嵌入的东西)上稍微减少数学密集的代码。但是对于Python(以及许多其他语言),硬件性能的任何差异都会因解释和装箱开销而相形见绌(通过许多数量级)。当number被视为指向16字节结构的指针时,如果为了响应解释的操作码而添加了动态调度的方法调用,那么实际处理是否需要1纳秒或100之后无关紧要。

从语义上讲,整数与(近似)实数之间的差异仍然是一个数学事实,而不是从计算机工程的现状发展而来的必要性。例如,浮点数(通常不是来自完全整数的浮点数的隐式转换)永远不会作为索引。