Python性能為什么如此的強(qiáng)大,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供定襄網(wǎng)站建設(shè)、定襄做網(wǎng)站、定襄網(wǎng)站設(shè)計(jì)、定襄網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、定襄企業(yè)網(wǎng)站模板建站服務(wù),10余年定襄做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
Python性能十分的強(qiáng)大,相關(guān)的技術(shù)為什么會如此的強(qiáng)大呢?下面我們就詳細(xì)的看看相關(guān)技術(shù)問題。問題的提出是源于 這位兄弟的BLOG,在他的這個(gè)實(shí)現(xiàn)中,Python性能具有相當(dāng)不錯(cuò)的性能,不但優(yōu)于帖子中的C實(shí)現(xiàn)性能,也優(yōu)于隨后的跟貼中眾多的C++實(shí)現(xiàn)的性能。
在經(jīng)過了多次嘗試,我還是很難找出一個(gè)優(yōu)于Python性能的實(shí)現(xiàn)。這不是一件正常的事情,Python性能注定不會優(yōu)于C/C++,這是因?yàn)镻ython是解釋執(zhí)行的,解釋的過程必然會消耗CPU時(shí)間,所以我查閱了Python的源碼試圖找出為何Python性能對于這個(gè)任務(wù)有如此好的性能的原因。
任務(wù)描述如下
對于一個(gè)78W行的文本文件,每一行是一個(gè)Email地址,文件中存在有重復(fù)的行,任務(wù)的要求是盡可能快的從這個(gè)文本文件生成一個(gè)無重復(fù)的Email的文本文件
有如下的問題需要注意
對于這種大量的字符串比較,直接使用字符串比較函數(shù)是嚴(yán)重妨礙性能的IO性能是要注意的盡可能的少使用占用內(nèi)存在我的嘗試中,發(fā)現(xiàn)重復(fù)調(diào)用ofstream::operator<< 是比較影響性能的,而使用 fprintf或使用copy 等 STL 算法輸出到則性能好的多。使用一種好的Hash算法是影響程序性能的關(guān)鍵。任務(wù)中的EMail字符串總是具有[a-z]*[0-9]*@([a-z]*\.)+[a-z]* 的形式,例如 joson123@sina.com.cn joson72345@sina.com.cn 的格式。
在$PySrc/Objects/dictobject.c 中,對Python的Hash機(jī)制作了一些描述,總的來說,Python的Hash機(jī)制對于這種連續(xù)型的字符串有相當(dāng)好的離散度,對于這個(gè) 78W 例子,python_hash() % 780000能夠很均勻的分散到各個(gè)值,***的沖突數(shù)為 8。 以下是按照類似 Python的 Hash算法實(shí)現(xiàn)的 C++ 版本的結(jié)果
E:\Workspace\Temp\Email>my 經(jīng)過了1687.5000毫秒 E:\Workspace\Temp\Email>my 經(jīng)過了1718.7500毫秒 E:\Workspace\Temp\Email>my 經(jīng)過了1671.8750毫秒 E:\Workspace\Temp\Email>my 經(jīng)過了1656.2500毫秒 E:\Workspace\Temp\Email>py_email.py 2.82014641526 E:\Workspace\Temp\Email>py_email.py 2.74879181572 E:\Workspace\Temp\Email>py_email.py 2.76348586203 E:\Workspace\Temp\Email>dir *.txt 2006-03-28 13:09 19,388,869 email.txt 2006-03-29 22:51 17,779,266 email_new.txt (py_email.py 寫出) 2006-03-29 22:50 17,779,266 email_new_my.txt (my.exe 寫出)
看完上述內(nèi)容,你們掌握Python性能為什么如此的強(qiáng)大的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁題目:Python性能為什么如此的強(qiáng)大
URL標(biāo)題:http://jinyejixie.com/article48/pddgep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、云服務(wù)器、網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、Google、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)