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

Google開始嫌Python不夠快 平臺級性能成瓶頸

開發(fā)
近來傳聞Google將在其新項目中限制Python的使用,為此有開發(fā)者在社區(qū)中公開詢問了Python社區(qū)的領(lǐng)軍人物Collin Winter,其中對Python的優(yōu)劣進行了深入的探討。

今日有傳言說Google將限制Python語言在Google項目中的使用,其中的主要原因是Python的速度。以下是來自內(nèi)部人士的一些詳細信息。

#t#Collin Winter是Python社區(qū)一位頗具影響力的開發(fā)者,他曾是CPython項目的核心開發(fā)者之一、也曾是Unladen Swallow(見文末注釋)的核心開發(fā)者,參與了很多Python項目的開發(fā)。近來傳聞Google將在其新項目中限制Python的使用,為此有開發(fā)者(以K表示)在Google 論壇中公開詢問了Collin Winter,Collin Winter就很多尖銳的問題做了解答。這篇帖子同時也吸引了很多高質(zhì)量的跟帖。

K:我聽說Google將在其新項目中限制Python的使用,無疑這將大大減少Python代碼和Python得到的支持。這是否確有其事還是只是謠傳?

Collin Winter:的確,Google將限制Python的應(yīng)用因為:Python不如Java和C++快,線程占有、內(nèi)存使用都很高在使用Python開發(fā) 新系統(tǒng)的時候,我們深知如果負載增加了10倍或者100倍系統(tǒng)會怎樣,開發(fā)出的服務(wù)會有多糟糕我想Python已經(jīng)發(fā)展到了一個狹縫中,因此在選擇時我們應(yīng)當權(quán)衡其優(yōu)點和缺點,也許開發(fā)人員使用Python會很有效率,但隨著系統(tǒng)的增大卻會遇到許多平臺級的性能限制。

K:Unladen Swallow會改變這一切么?你的期望是什么呢?

Collin Winter:Unladen Swallow旨在盡可能地將Python用在更多它現(xiàn)在尚未涉足的地方,而且Unladen Swallow也并非包治百病的靈丹妙藥。如果沒有人給Python注入投資,Python將仍舊比C和Java慢、占用更多的內(nèi)存和線程。我希望開發(fā)者對Python的關(guān)注能夠形成一個良性循環(huán):越多的開發(fā)者感興趣、越多的公司干興趣,就有越多的投資注入,從而開發(fā)出更多的Python資源。

我認為Python及其他動態(tài)語言***的一點就是:許多開發(fā)者工作于不同的子系統(tǒng),但都為同一個代碼基工作。而C或者C++語言則不同,參與的開發(fā) 者越多,代碼基就越支離破碎。從這個角度來說動態(tài)語言更加易于sandbox操作。這種敏捷和靈活是Python語言的重要特性。

K:Python的確是比C和Java慢,但它比較起v8 JavaScript引擎如何,是否會是后者的競爭對手呢?

Collin Winter:我認為像CPython之類的應(yīng)用不可能像V8或者SquirrelFish Extreme那樣快,畢竟后兩者是專為速度而生的。我們也曾遇到一些高速性能方面的優(yōu)化卻很難配置到CPython中,因而只能放棄。作為開源項目的志 愿者,CPython跟V8的側(cè)重點不一樣:CPython強調(diào)的是簡單,也即簡單、稍慢的內(nèi)核便于人們在業(yè)余時間維護。

對于Python的另一個項目PyPy我倒是有很高的期望,希望它能擺脫C-level向后兼容的束縛而提供長久的性能解決方案。但這個愿望可能需要十年來實現(xiàn)。

K:CPython為什么考慮的是人們在業(yè)余時間的維護?

Collin Winter:CPython開發(fā)人員很少是有報酬的,幾乎全部是志愿者,而Ruby開發(fā)者卻能夠從EngineYard等贊助商那里獲得基金,因而當他 們意識到MRI伺服web應(yīng)用很慢時,他們可以更好地開發(fā)他們的VM。這也決定了我們開發(fā)的東西更加照顧大多數(shù)人的需求。

一位名叫Leon Sit的開發(fā)者在這里補充道:我認為當系統(tǒng)增大時,CPython除了在數(shù)字碼方面表現(xiàn)不錯之外其他的都差強人意。而且,CPython依賴C編輯器而 Windows系統(tǒng)根本沒有C編輯器。為了提高CPython的速度,就需要添加打印信息而它們涉及的語法卻非Python的標準語法。

K:那么Jython呢?

Collin Winter:Unladen Swallow的另一個主要目標是維護與C擴展模塊的兼容性,后者被Google廣泛使用。使用Jython需要將基礎(chǔ)架構(gòu)從SWIG移植到JNI,這是 一項很痛苦的工作,而且?guī)缀鯐o可避免地帶來非常繁瑣的bug。這是我們?yōu)槭裁礇]有選擇Jython作為baseline的首要原因。

Jython是一部分全職的有薪開發(fā)者。但到目前為止,IronPython和Jython不得不將大部分的開發(fā)精力放在與CPython的兼容 上,只有很少的精力放在性能優(yōu)化方面。也由此可見支持Python 3多么影響Jython,IronPython, PyPy等項目。

網(wǎng)友Tom Machinski認為:CPython并非與低階虛擬機(LLVM)相兼容。Unladen Swallow項目組提高五倍性能的承諾并沒有真正意義上的實現(xiàn)。如果CPU耗用至少90%的執(zhí)行時間用以運行一小段循環(huán),CPython無疑可以將這段 程序提高100倍甚至更多。但如果是大的應(yīng)用呢?而且不要忘了,這種加速往往只是針對程序的某個點,也即熱點優(yōu)化(hot spot optimization)。

不要誤會我的意思,我當然對Unladen Swallow項目很感興趣而且希望它能夠真正地實現(xiàn)目標。但我也絕對認同Collin的意思:即便Unladen Swallow項目所有的目標都能真正實現(xiàn),Python也不是Java或者C++的對手。

有開發(fā)者問:像Google這樣的公司為什么不用Python編寫一個原型,然后逐漸將核心部分轉(zhuǎn)化為Cyhton,這樣以來既能利用Python的優(yōu)勢,也可以獲得C的效率和優(yōu)化性能?

Craig Citro答道:我認為對Google而言這是發(fā)展Python的新計劃:用Python寫代碼、做測試,然后將重要部分轉(zhuǎn)化為CPython以提高速度。然而這無疑是一項巨大的工作,而Collin Winter在上文中談到的也不過是提高Python的運行速度、讓Python在Google中繼續(xù)保留下去。

而且目前CPython與Unladen Swallow的目標有很多矛盾之處,比如在低階虛擬機(LLVM)方面,Unladen Swallow希望引入許多runtime優(yōu)化和特性,而CPython卻無法做到。

但是正如HotSpot JVM在一些標準方面可以打敗g++一樣,CPython擊敗單純的Python代碼靜態(tài)編輯也不是什么難事。比如,如果你想寫一個特殊的應(yīng)用而你又很在 乎性能,CPython就是很棒的選擇。你可以將對象轉(zhuǎn)化為本地的C數(shù)據(jù)類型,如果你嫌麻煩而將Python代碼轉(zhuǎn)為CPython,JIT編輯器會很好 地優(yōu)化這些純Python代碼。

注釋: Unladen Swallow是Python的一個分支,由Google的一組開發(fā)人員組成。由于Google 在很多的應(yīng)用項目中使用了Python,例如內(nèi)部的服務(wù)器監(jiān)控以及對外的Google Groups等。 所以Google很自然地希望提高Python的性能。該項目致力于改善Python的執(zhí)行效率。Unladen Swallow的目標是將Python的性能提高五倍。為了實現(xiàn)該目標,將增加JIT的支持,并對虛擬機進行重新設(shè)計。在性能提升的同時,依舊會與 CPython保證源代碼級別的兼容。

Unladen Swallow 的項目***及核心開發(fā)人員包括: Collin Winter、Jeffrey Yasskin、Thomas Wouters ,均為長期從事 CPython 的核心開發(fā)人員。他們貢獻自己的20%的自由工作時間給Unladen Swallow。但是這個組織堅持認為這是一個Python項目,而非Google所有。

責任編輯:yangsai 來源: CSDN
相關(guān)推薦

2016-10-25 17:38:54

閃存存儲

2024-01-30 17:48:43

算法字符串性能

2022-11-30 15:28:29

蔚來汽車廠商

2009-10-20 09:03:32

李開復(fù)谷歌

2012-07-04 09:13:43

Google云計算

2022-03-02 10:36:37

Linux性能優(yōu)化

2009-01-17 15:26:05

2012-12-27 10:23:12

Google Now谷歌

2013-02-22 18:28:18

容錯服務(wù)器、

2012-09-17 17:42:48

Google Play盈利開發(fā)者

2019-10-31 11:50:19

MySQL數(shù)據(jù)庫Windows

2024-04-22 10:02:22

2011-08-05 09:45:30

Google CodeGit

2009-04-22 17:16:50

Analytics AGoogle測試

2009-03-30 09:01:09

Python性能Unladen SwaGoogle

2023-06-09 12:59:52

Python性能分析

2023-05-06 18:37:43

2022-04-29 15:24:53

Redis存儲慢查詢

2020-11-11 10:00:13

NAT性能內(nèi)核

2015-11-09 10:25:25

點贊
收藏

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