偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

探究Python性能為什么如此的強大

開發(fā) 后端
Python性能一直都是十分的強大,不少的用戶都在使用。下面我們就詳細的看看Python性能為什么如此的強大,希望大家有所收獲。

Python性能十分的強大,相關的技術為什么會如此的強大呢?下面我們就詳細的看看相關技術問題。問題的提出是源于 這位兄弟的BLOG,在他的這個實現(xiàn)中,Python性能具有相當不錯的性能,不但優(yōu)于帖子中的C實現(xiàn)性能,也優(yōu)于隨后的跟貼中眾多的C++實現(xiàn)的性能。#t#

在經(jīng)過了多次嘗試,我還是很難找出一個優(yōu)于Python性能的實現(xiàn)。這不是一件正常的事情,Python性能注定不會優(yōu)于C/C++,這是因為Python是解釋執(zhí)行的,解釋的過程必然會消耗CPU時間,所以我查閱了Python的源碼試圖找出為何Python性能對于這個任務有如此好的性能的原因。

任務描述如下

對于一個78W行的文本文件,每一行是一個Email地址,文件中存在有重復的行,任務的要求是盡可能快的從這個文本文件生成一個無重復的Email的文本文件

有如下的問題需要注意

對于這種大量的字符串比較,直接使用字符串比較函數(shù)是嚴重妨礙性能的IO性能是要注意的盡可能的少使用占用內(nèi)存在我的嘗試中,發(fā)現(xiàn)重復調(diào)用ofstream::operator<< 是比較影響性能的,而使用 fprintf或使用copy 等 STL 算法輸出到則性能好的多。使用一種好的Hash算法是影響程序性能的關鍵。任務中的EMail字符串總是具有[a-z]*[0-9]*@([a-z]*\.)+[a-z]* 的形式,例如 joson123@sina.com.cn joson72345@sina.com.cn 的格式。

在$PySrc/Objects/dictobject.c 中,對Python的Hash機制作了一些描述,總的來說,Python的Hash機制對于這種連續(xù)型的字符串有相當好的離散度,對于這個 78W 例子,python_hash() % 780000能夠很均勻的分散到各個值,***的沖突數(shù)為 8。 以下是按照類似 Python的 Hash算法實現(xiàn)的 C++ 版本的結果

  1. E:\Workspace\Temp\Email>my   
  2. 經(jīng)過了1687.5000毫秒   
  3. E:\Workspace\Temp\Email>my   
  4. 經(jīng)過了1718.7500毫秒   
  5. E:\Workspace\Temp\Email>my   
  6. 經(jīng)過了1671.8750毫秒   
  7. E:\Workspace\Temp\Email>my   
  8. 經(jīng)過了1656.2500毫秒   
  9. E:\Workspace\Temp\Email>py_email.py   
  10. 2.82014641526   
  11. E:\Workspace\Temp\Email>py_email.py   
  12. 2.74879181572   
  13. E:\Workspace\Temp\Email>py_email.py   
  14. 2.76348586203   
  15. E:\Workspace\Temp\Email>dir *.txt   
  16. 2006-03-28 13:09 19,388,869 email.txt   
  17. 2006-03-29 22:51 17,779,266 email_new.txt (py_email.py 寫出)   
  18. 2006-03-29 22:50 17,779,266 email_new_my.txt (my.exe 寫出)  

以上就是對Python性能的詳細介紹。

責任編輯:張浩 來源: IT博客
相關推薦

2020-05-29 17:21:33

神經(jīng)網(wǎng)絡學習函數(shù)

2024-11-04 09:26:42

RESTJavaAPI

2012-04-09 13:35:10

Instagram

2019-01-15 17:50:18

存儲技術容器

2017-07-26 10:21:46

DockerLinux容器

2022-06-01 23:27:38

區(qū)塊鏈加密貨幣數(shù)字資產(chǎn)

2020-06-02 19:14:59

Kubernetes容器開發(fā)

2020-11-05 10:50:09

物聯(lián)網(wǎng)數(shù)據(jù)技術

2014-12-19 09:59:50

代碼

2022-11-28 09:00:03

編程bug開發(fā)

2013-04-19 13:59:00

Apache Hado

2021-10-26 10:12:04

技術債務軟件開發(fā)應用程序

2022-11-21 18:02:04

前端測試

2021-03-29 16:32:03

軟件代碼程序員

2011-10-14 09:20:48

Lisp

2020-04-21 11:03:34

微服務數(shù)據(jù)工具

2021-09-29 16:53:53

區(qū)塊鏈數(shù)據(jù)技術

2023-04-10 15:41:35

2018-05-02 12:34:48

2018-04-24 15:53:52

點贊
收藏

51CTO技術棧公眾號