在Python中使用long与int的性能影响

时间:2012-01-12 01:08:07

标签: python performance cpython

我需要在Python中操作适合64位的大数字。目前,我的代码在64位平台上运行,但是它必须在32位平台上运行的可能性很小但很明显。因此,我更愿意使用long类型来表示我的数字。我了解使用long超过int类型会对性能产生影响。有多糟糕?我将对它们进行大量的除法和乘法运算,但结果也应该都适合64位。

2 个答案:

答案 0 :(得分:3)

如果你要进行大量的数字运算,请看看“numpy”。

答案 1 :(得分:3)

如果你的程序进行了大量的数值计算 - 在性能很重要的地方,你应该对它进行分析,并让数字部分在本机代码中运行。你不必担心内部数字是Python“整数”还是“长” - 以至于Python 3消除了类型差异。

有几种方法,从使用numpy,cython,C扩展,使用pypy而不是标准cpython运行你的程序,甚至看看corepy - 你不应该做的是拥有一个数字密集型如果性能是一个问题,在纯python中运行的任务。他最复杂的事件 - 以单个函数的形式创建一个C扩展,只执行计算很简单,非常值得在这种情况下获得性能提升。