自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

谷歌發(fā)布新項(xiàng)目,旨在將Python代碼編譯為Go

譯文
新聞
盡管Grumpy需要通過Go工具鏈將Python代碼轉(zhuǎn)換為靜態(tài)二進(jìn)制文件,但這并不會給其運(yùn)行速度帶來多少影響。畢竟已經(jīng)存在眾多將Python編譯為二進(jìn)制形式的項(xiàng)目,考慮到Python本身的動態(tài)類型系統(tǒng)特性,其很難通過這種方式實(shí)現(xiàn)提速。

  【51CTO.com快譯】Python很可能遭遇另一位強(qiáng)勁的編程語言對手:谷歌Go

  作為一項(xiàng)實(shí)驗(yàn)性項(xiàng)目,谷歌公司的Grumpy能夠?qū)ython代碼轉(zhuǎn)換為Go形式,這意味著Python程序?qū)⒛軌蛟诰幾g后利用Go工具鏈作為靜態(tài)二進(jìn)制文件運(yùn)行。其對Python的轉(zhuǎn)換相當(dāng)于創(chuàng)建了一款Go應(yīng)用。

  在一篇開源發(fā)布博文中,谷歌公司指出,該項(xiàng)目能夠加快其Python開發(fā)型YouTube前端的升級工作。谷歌公司在此前的工作也遇到了Python用戶的普遍困擾:很難利用CPython——以C語言編寫的默認(rèn)Python解釋器——進(jìn)行有效擴(kuò)展。

  谷歌公司表示,“我們認(rèn)為Grumpy擁有遠(yuǎn)超CPython的實(shí)際工作負(fù)載擴(kuò)展?jié)摿Α?rdquo;

  以小失換大得

  盡管Grumpy需要通過Go工具鏈將Python代碼轉(zhuǎn)換為靜態(tài)二進(jìn)制文件,但這并不會給其運(yùn)行速度帶來多少影響。畢竟已經(jīng)存在眾多將Python編譯為二進(jìn)制形式的項(xiàng)目,考慮到Python本身的動態(tài)類型系統(tǒng)特性,其很難通過這種方式實(shí)現(xiàn)提速。舉例來說,Cython只有在開發(fā)者提供靜態(tài)C類型信息時(shí)才能實(shí)現(xiàn)加速。

  根據(jù)谷歌的說法,Grumpy能夠通過消除部分CPython遺留負(fù)擔(dān)加速Python代碼。其中提速效果最明顯的是刻意舍棄對C擴(kuò)展模塊的支持以換取速度提升。目前存在著大量使用C擴(kuò)展模塊的資源庫,其中相當(dāng)一部分來自Python標(biāo)準(zhǔn)庫(例如用于同C代碼對接的ctypes)。

  由于不再支持C擴(kuò)展,Grumpy并不具備CPython的全局解釋器鎖(Global Interpreter Lock),而這通常被視為順利實(shí)現(xiàn)Python并發(fā)負(fù)載運(yùn)行的***障礙。Grumpy還將使用Go的垃圾回收機(jī)制進(jìn)行內(nèi)存管理,而不再沿用CPython的類似機(jī)制。

  Grumpy允許導(dǎo)入Go軟件包并配合與Go模塊同樣的語法加以使用,從而在Python與GO之間建立起緊密的互操作性。這不禁讓人聯(lián)想到pythonnet項(xiàng)目,其允許Python與.Net程序集實(shí)現(xiàn)互操作性。

  缺失部分

  Go及其工具鏈目前已經(jīng)被眾多第三方用于開發(fā)新型語言。其中Have項(xiàng)目利用Go作為轉(zhuǎn)換目標(biāo),而Oden項(xiàng)目則利用Go工具鏈在Haskell或者Lisp當(dāng)中創(chuàng)建一種新的函數(shù)性語言。Oden項(xiàng)目已經(jīng)于去年年底停止開發(fā),不過Have項(xiàng)目則仍在積極推進(jìn)當(dāng)中。

  利用Grumpy,Go的工具鏈將有助于幫助龐大的Python用戶社區(qū)解決諸多現(xiàn)實(shí)難題。雖然谷歌公司的實(shí)際使用效果應(yīng)該更好,畢竟Grumpy是專門針對其需求打造的項(xiàng)目,但我們也相信廣泛Python社區(qū)同樣將借此解除或者應(yīng)對諸多既有障礙。不過,這一切都要視Grumpy項(xiàng)目的實(shí)際發(fā)展?fàn)顩r而定。

  舉例來說,Grumpy僅支持Python的早期Python 2.x語法,另外亦有眾多標(biāo)準(zhǔn)庫未完成移植,exec或eval這樣的函數(shù)也尚無法正常使用。

  而最重要的缺失部分并非對C擴(kuò)展本身的支持,而是依賴于C擴(kuò)展的各類資源庫。失去了C擴(kuò)展,意味著只有最為普通的Python腳本才能編譯并運(yùn)行在Grumpy的當(dāng)前互操作機(jī)制之下。雖然谷歌方面也可以利用Go語言編寫出相關(guān)替代方案,但其中某些大型Python庫——例如NumPy——將完全不可用,而此類庫正是Python整體生態(tài)系統(tǒng)中的重要組成部分。

  原文標(biāo)題:Google boosts Python by turning it into Go

  原文作者:Serdar Yegulalp

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】 

 

   了解更多熱點(diǎn)新聞,請關(guān)注51CTO《科技新聞早報(bào)》欄目!

責(zé)任編輯:張誠 來源: 51CTO
相關(guān)推薦

2011-04-30 16:18:49

AndroidGoogle TV智能電視

2023-10-27 10:16:17

前端項(xiàng)目Rust

2012-03-15 14:25:22

Go

2014-06-23 09:49:32

Go語言Android谷歌

2019-12-06 13:59:37

代碼開發(fā)Python

2012-03-30 14:15:50

GoogleGo

2019-10-14 08:00:00

Go語言編程語言開源項(xiàng)目

2011-10-21 09:24:13

谷歌Android 4.0源代碼

2009-12-08 17:56:51

2009-03-30 14:12:38

LinuxUnladenSwallow

2012-09-21 10:30:58

谷歌iOS 6Google云地圖

2011-03-30 08:57:36

Android 3.1谷歌

2009-12-11 10:00:30

谷歌Chrome插件庫

2011-06-21 14:46:44

Hibernate

2013-04-11 09:43:15

Android創(chuàng)建項(xiàng)目Android開發(fā)

2011-12-27 09:40:25

谷歌Android培訓(xùn)

2021-01-26 11:37:40

FedoraChrome谷歌

2023-08-10 08:38:57

Project IDFlutter谷歌

2016-10-16 15:03:32

NetApp
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號