online gambling singapore online gambling singapore online slot malaysia online slot malaysia mega888 malaysia slot gacor live casino malaysia online betting malaysia mega888 mega888 mega888 mega888 mega888 mega888 mega888 mega888 mega888 專家點出Python之父近期重大宣布,CPython執行速度4年內將翻5倍

摘要: Python之父Guido van Rossum在今年5月的PyCon US上宣布,要在4年內將CPython的執行速度提升5倍。對此,交大AI學院副教授魏澤人認為,這次效能提升的計畫,會直接更新到Python官方版本中,「可能是一個很大的轉變。」

 


images/20210722_1_1.png

▲Guido van Rossum將與微軟4位Python核心開發者,共同研究提升CPython效能的方法。目前已經把將計畫文件置於GitHub上。(來源:ithome.com)

交大AI學院副教授魏澤人認為,Python之父Guido van Rossum在今年5月的PyCon US上宣布,要在4年內將CPython的執行速度提升5倍,是Python開發者近期值得關注的議題。他指出,由於這次效能提升的計畫,會直接更新到Python官方版本中,「可能是一個很大的轉變。」

CPython是以C語言實作的直譯器,由於是Python官方組織發布的工具,它也是當前最廣泛使用的Python直譯器。魏澤人解釋,Python的一大缺點,就是執行速度慢,需要靠C語言編寫的直譯器CPython,來加速Python的執行;在進行大數據分析的相關應用時,為了提升大量運算的需求,也可能搭配如Numpy、TensorFlow等以C語言為主編寫的函式庫,來提升執行效率。換句話說,Python執行速度慢的問題已經存在已久,過去常見做法,就是與其他編譯式語言相搭配,來加快Python執行速度。

不過,這個問題似乎在今年迎來轉機。5月時,Guido van Rossum在微軟開發者社群Reactor的一場採訪中表示,去年加入微軟後,原先想投入Python在資料科學領域的貢獻,但在實作AI應用後,發現機器學習領域博大精深,若要精通並對這個領域貢獻,可能要花上3~4年時間。因此,他後來選擇與微軟4位Python核心開發者,共組一個團隊,來研究提升CPython效能的方法。團隊成員更已經把將相關文件置於GitHub上,計畫分4階段來提升CPython執行速度。

文件中明確列出了4階段計畫時程與內容。首先在第一階段,將在今年10月要發布的Python 3.10版本中,增加一個適應性、專業化的直譯器(interpreter);第二階段,則是要在Python 3.11版本中進行多個關鍵項目的改進,包括提升二元運算符(binary operators)的效能,或是透過更好的物件記憶體設計,來減少記憶體管理的資源消耗(overhead)。第三階段,是要在Python 3.12版本加入小範圍使用的簡易JIT編譯器;最後一個階段,是要在Python 3.13版本中擴充編譯區域,加強編譯功能來生成更高級的機器語言(machine code)。

在這4個階段中,預計每階段都要提升CPython速度50%,最後達到總執行速度提升5倍的成效。但文件內也指明,某些平臺禁止執行過程中的程式碼生成(runtime code generation),比如蘋果行動裝置的iOS平臺就是其中一例,對這些平臺來說,只有前兩階段有助於提升CPython的效能,也就無法提升5倍速度,只能提升大約2倍。

Guido van Rossum在PyCon US上,也說明了CPython效能提升,對使用者產生的影響。他指出,受益較大的使用者,是在密集CPU(CPU-intensive)上執行Python程式碼、用Python寫網站,以及使用Python編寫的工具或套件的使用者,未來程式碼執行速度會更快;但相對的,使用Numpy、Tensorflow等本來就已經用C語言編寫的套件、記憶體輸入輸出綁定(I/O-bound)的程式碼、多執行緒程式碼以及演算法效率低下的程式碼,對這些使用者來說受益較小,Python效能精進相對較少。

他在訪談中也提到,「加快Python速度」這件事,過去也有不少團隊致力於改進。比如臉書5月開源了Cinder專案,這是一個Instagram內部效能導向的CPython 3.8生產版本,透過多種方法實現CPython的效能優化,其中的Cinder JIT幾乎支援了所有Python運算程式碼,在許多Python效能基準測試中,更可以達到1.5~4倍的速度提升。

Dropbox內部也有Modzelewski和Marius Wachtler等開發人員,開源了Pyston專案,現在已經更版到Pyston 2.2,最新5月的發布指出,Pyston 2.2在Web伺服器基準測試中,比普通Python快了30%,這還是保守的說法。這個版本也立基在CPython 3.8.8之上,融合了許多CPython的改變。

不過,由於這些專案都不是Python官方所開發,而是各家企業為了在內部加快Python執行的速度,對CPython所做的修改。因此,魏澤人認為,Guido與微軟團隊主導的CPython效能改善,是官方標準版本的改變,能對更多Python使用者帶來影響。

Python TIOBE流行度即將媲美C、Java

除了Python速度的加快,是未來可關注的焦點,Python近期流行度也大幅提升,根據熱門程式語言排行榜TIOBE Index的7月排行公布,前三名C、Java和Python分數前所未有的接近,依照現在的態勢,Python也很有機會超過C語言成為第一名。而Python排名的進步,可能與Python在疫情期間被用於尋找對抗病毒的藥物有關。

魏澤人則是較以長期觀察的角度來評論,認為Python排名提升是許多因素綜合的結果。他推測,其中一大關鍵,可能是Python本身易上手、快速開發、用途廣泛的特性,推動學校紛紛開課教授這門程式語言,學生畢業後進入職場,又帶動職場IT開發語言的改變,而逐漸鞏固了Python的地位。

尤其,Python不只能用於開發網頁、後端、行動應用程式以及嵌入式系統的應用,近年來AI的蓬勃發展,更掀起Python的新一波應用浪潮,加上Python雖然無法直接用於系統開發,但能作為膠水語言,並與其他如C、Java等語言搭配使用,無論是用於整合或串接各式各樣的系統(例如資料庫),或在進行數據計算時,用來連接其他語言編寫的函式庫等,都有用武之地。

因此,他認為,無論Python日後是否如預期的奪下第一的寶座,未來幾年內掉出十名以外的機率較小,因為其他未來很有潛力的程式語言,如Julia、Rust,目前在教學上還不夠普及,需要一點時間才會反映在佔有率上面。

轉貼自: ithome.com

若喜歡本文,請關注我們的臉書 Please Like our Facebook Page:    Big Data In Finance

 


留下你的回應

以訪客張貼回應

0
  • 找不到回應