2012-01-12 69 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擴展就足夠簡單,在這種情況下非常值得性能提升。