python64位元能夠用更大的記憶體空間,python64位元可以在64位元的系統下運行,但是不能在32位元系統下運行。 python32位元能夠在32位元和64位元上運行,但是記憶體空間較小。
64bit軟體和32bit軟體最大的差別是64bit的軟體可以同時操作大於4GB的記憶體。 (建議學習:Python影片教學)
注意這裡的記憶體指的是位址空間,而不是實體記憶體。例如現在有一個10GB的資料庫需要進行排序。 64bit的軟體可以malloc一個10GB的空間把整個資料庫「放進」記憶體然後使用任意經典排序演算法,而32bit的軟體在malloc時就會崩潰(out-of-memory)。
所以32位元軟體的程式設計師只能用複雜的演算法明確的分塊讀入,局部排序,寫回資料庫,然後重複。這樣不僅程式複雜難寫,程式設計師swap記憶體和檔案的演算法效率可能也不如OS自動處理來的高效。另一方面,64bit軟體龐大的記憶體空間也可能加速實體記憶體的消耗,增加尋址的開銷,因此未必總是能夠提高效能。
當然最終系統的效率還是取決於實體記憶體的大小,64bit只是解決了位址空間的瓶頸。
32bCPU和64bCPU的差別?
首先二者的指令集合、操作數位數、暫存器名稱和個數等等都不相同;
#例如一條mov eax,1指令,可能在32bCPU上對應的機器指令是0x1201;在64位元機器上就是0x123401。程式對於機器CPU而言,只是一系列順序躺在記憶體中的01程式碼而已,而硬體上直接運行的是作業系統,所以你馬上得出結論:32b的CPU只能運行32b的作業系統,64位亦然。
這麼設計的確在理論上沒什麼不妥,其實intel IA 64架構的處理器就是這樣的,64b的CPU上只能運行64b的作業系統(作業系統本身也是軟體,也是一系列指令序列)。
但這樣問題就來了:我需要升級硬體來提速,難道買了CPU以後,要把上層的作業系統和應用軟體通通換掉?坑碟呢?這種軟硬體不相容帶來的問題就是,沒有多少客戶會去買這種沒辦法相容32b原有軟體環境的CPU。所以,後來intel和amd都推出了相容32b原有軟體環境的CPU——intel 的x86——64和amd的amd64.
也就是說,現在主流的64b處理器,上面可以運行32b和64b的作業系統。
更多Python相關技術文章,請造訪Python教學欄位學習!
以上是python64位和32位區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!