簡體   English   中英

在64位OS中的64位CPU上運行X86-64 Python是否有好處?

[英]Are there benefits to running X86-64 Python on a 64-bit CPU in a 64-bit OS?

運行amd64構建的Python和擴展有哪些好處? 這里有很多為amd64編譯的擴展程序。)我有一個i5處理器和Win7 64位,因此似乎很合適。 但這聽起來也像是越野車,測試版,不受支持等。

它實際上提供性能優勢嗎? 在哪些地區? 我將運行SciPy,NumPy等。我有時會因32位Python出現“內存不足”錯誤,並且我的機器具有4 GiB的RAM。

如果沒有64位版本的Win32軟件包可以安裝在64位Python上嗎?

使用64位Python的主要理由是,您可以訪問超過2GB的主內存,例如,如果您有大型字典,列表或長字符串。 這要求您實際上在系統中具有足夠的內存才能實用。

第二個效果是,在AMD64模式下,CPU具有更多的寄存器,因此生成的代碼運行速度可能稍快(對於整數運算)。

Windows上的64位模式下的Python當然不是beta版或不受支持。 它可能有問題,但前提是您確實具有非常大的數據結構。 64位Python已有15年的歷史(盡管Windows除外)。

與其他所有64位程序一樣的優勢:大量的處理空間,以及訪問更多和更大的寄存器(至少對於VM和C模塊而言)。 但是,您不需要找到C模塊的64位版本。

一般情況下,通常使用64位代碼即可獲得一加。 我還沒有找到任何最新的基准,但是在引入x64時,在64位上的代碼運行速度比在x86硬件上的32位運行速度提高了30%-自那時以來,這種差距無疑已經在某種程度上隨着優化而縮小了,但是仍然可能更快。

此外,如果您也需要透明地使用超過4GB的內存,您將受益匪淺。

但是請注意,64位的速度提高是由於糟糕的32位傳統ABI:運行在32位的i7內核具有與1987年的80386芯片相同的4個通用寄存器(以及其他幾個寄存器)。從70年代到8086上的1:1。 64位abi引入了更多(實際)通用寄存器,從而提高了速度。 否則,64位代碼只會花費兩倍的緩存空間,這使得它在其他架構(如PPC)中實際上比32位代碼慢。

我已經在Linux上運行64位Python多年了。 沒問題,這不是越野車。 包括numpy。 我不會擔心的。

一個小好處:

Python> sys.maxint
9223372036854775807

但是,我想人們可能會爭辯說這樣做是否有好處,但是通常所有64位應用程序都一樣。

處理大量數據時,您將獲得最大收益。

我想您可以通過SciPy和NumPy來提高性能,因為當您向處理器中添加更多位時,數字處理和計算將得到極大的改善。 但是我不能確定。

您總是可以並行運行64位和32位並進行一些比較,我很想知道在數字運算方面的測試結果。 而且,如果您運行的是相同版本的代碼,則只要您擁有兩者所需的模塊,代碼就可以很好地運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM