2012-01-12 70 views
5

我需要在Python中处理大数量的64位数字。目前,我的代码是在64位平台上运行的,但是它的运行在32位平台上的可能性很小但很明显。因此,我宁愿使用long类型来表示我的号码。我明白,使用long而不是int类型会对性能产生影响。它有多糟糕?我将对它们进行很多分割和乘法运算,但结果也应该都适合64位。在Python中使用long和int时的性能影响

+1

Python不处理这个 - 以及任意大的数字 - 自动? – 2012-01-12 01:12:35

+2

你可以使用timeit模块分析你的代码 – TJD 2012-01-12 01:13:17

+1

你使用的是什么版本的Python?如果您使用的是3.x版本,请参阅:PEP 0237:基本上,long重命名为int。也就是说,只有一个内置整型,名为int;但它的行为大多像旧的长型。 – Yuushi 2012-01-12 01:14:41

回答

3

如果你将要做大量的大量数据处理,看看“numpy”。

3

如果您的程序执行了大量的数值计算 - 对性能至关重要的问题,您应该对其进行分析,并使数值部分以本机代码运行。如果内部数字是Python“整数”或“长整数”,则不必担心 - Python 3会消除类型差异。

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