Python中使用long和int的性能影响

5 投票
2 回答
994 浏览
提问于 2025-04-17 10:03

我需要在Python中处理一些大数字,这些数字可以放进64位的空间里。现在我的代码是在64位的平台上运行,但有小概率会需要在32位的平台上运行。因此,我更希望使用long类型来表示我的数字。我知道使用long类型相比int类型会影响性能。这个影响有多大呢?我会对这些数字进行很多次的除法和乘法运算,但结果也应该都能放进64位的空间里。

2 个回答

3

如果你的程序需要进行大量的数字计算,而且这些计算的速度很重要,那么你应该对程序进行性能分析,并让数字计算部分使用本地代码来运行。你不需要担心内部的数字是Python的“整数”还是“长整型”——因为在Python 3中,这两者的区别已经被去掉了。

有几种方法可以实现这一点,比如使用numpy、cython,或者写一个C语言扩展,甚至可以用pypy来运行你的程序,而不是标准的cpython。你还可以看看corepy。总之,如果你的任务是数字密集型的,性能很重要的话,就不要在纯Python中运行这些计算。即使是最复杂的方法——创建一个只执行计算的C语言扩展函数,其实也足够简单,能带来很大的性能提升。

3

如果你需要进行很多复杂的数学计算,可以看看“numpy”。

撰写回答