新聞中心
這篇文章主要介紹了python64位和32位區(qū)別是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
python64位能夠用更大的內存空間,python64位可以在64位的系統(tǒng)下運行,但是不能在32位系統(tǒng)下運行。python32位能夠在32位和64位上運行,但是內存空間較小。
64bit軟件和32bit軟件大的區(qū)別是64bit的軟件可以同時操作大于4GB的內存。
注意這里的內存指的是地址空間,而不是物理內存。比如現(xiàn)在有一個10GB的數(shù)據(jù)庫需要進行排序。64bit的軟件可以malloc一個10GB的空間把整個數(shù)據(jù)庫“放進”內存然后使用任意經(jīng)典排序算法,而32bit的軟件在malloc時就會崩潰(out-of-memory)。
所以32位軟件的程序員只能使用復雜的算法顯式的分塊讀入,局部排序,寫回數(shù)據(jù)庫,然后重復。這樣不僅程序復雜難寫,程序員swap內存和文件的算法效率可能也不如OS自動處理來的高效。另一方面,64bit軟件巨大的內存空間也可能加速物理內存的消耗,增加尋址的開銷,因此未必總是能夠提高性能。
當然最終系統(tǒng)的效率還是取決于物理內存的大小,64bit只是解決了地址空間的瓶頸。
32bCPU和64bCPU的區(qū)別?
首先二者的指令集合、操作數(shù)位數(shù)、寄存器名稱和個數(shù)等等都不相同;
比如一條mov eax,1指令,可能在32bCPU上對應的機器指令是0x1201;在64位機器上就是0x123401。程序對于機器CPU而言,僅僅是一系列順序躺在內存中的01代碼而已,而硬件上直接運行的是操作系統(tǒng),所以你馬上得出結論:32b的CPU只能運行32b的操作系統(tǒng),64位亦然。
這么設計的確在理論上沒什么不妥,實際上intel IA 64架構的處理器就是這樣的,64b的CPU上只能運行64b的操作系統(tǒng)(操作系統(tǒng)本身也是軟件,也是一系列指令序列)。
但這樣問題就來了:我需要升級硬件來提速,難道買了CPU以后,要把上層的操作系統(tǒng)和應用軟件通通換掉?坑碟呢?這種軟硬件不兼容帶來的問題就是,沒有多少客戶會去購買這種沒法兼容32b原有軟件環(huán)境的CPU。所以,后來intel和amd都推出了兼容32b原有軟件環(huán)境的CPU——intel 的x86——64和amd的amd64.
也就是說,現(xiàn)在主流的64b處理器,上面可以運行32b和64b的操作系統(tǒng)。
感謝你能夠認真閱讀完這篇文章,希望小編分享python64位和32位區(qū)別是什么內容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!
網(wǎng)站名稱:python64位和32位區(qū)別是什么-創(chuàng)新互聯(lián)
文章位置:http://fisionsoft.com.cn/article/ghjie.html