丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給恒亮
發(fā)送

0

PyPy 雙版本同步更新,不僅僅是快

本文作者: 恒亮 2017-03-22 17:39
導(dǎo)語(yǔ):PyPy 團(tuán)隊(duì) 21 日通過(guò)官方博客正式發(fā)布了兩個(gè)全新版本:PyPy2.7 v5.7 和 PyPy3.5 v5.7。

PyPy 雙版本同步更新,不僅僅是快

雷鋒網(wǎng)消息。PyPy 團(tuán)隊(duì) 21 日通過(guò)官方博客正式發(fā)布了兩個(gè)全新版本:PyPy2.7 v5.7 和 PyPy3.5 v5.7,即支持 Python v2.7 語(yǔ)法和 Python v3.5 語(yǔ)法的 PyPy 全新版本解釋器。

據(jù)博客介紹,此次更新的亮點(diǎn)有兩個(gè):

● PyPy3.5 首次引入了對(duì) Python 3 的語(yǔ)法支持;

● PyPy2.7 提升了對(duì) C 擴(kuò)展包的兼容性,可以直接運(yùn)行 Numpy、Cython 和 Pandas 等。

大部分做 Python 開(kāi)發(fā)的人或多或少可能都知道 PyPy:一種基于 Python 實(shí)現(xiàn)的 python 解釋器。由于其特有的 JIT 動(dòng)態(tài)編譯,因此在運(yùn)行速度上可以輕輕松松超過(guò)標(biāo)準(zhǔn)解釋器 CPython 好幾倍,甚至有報(bào)道稱在某些極端情況下 PyPy 可以比 CPython 快好幾百倍?;谶@一重大優(yōu)點(diǎn),PyPy 團(tuán)隊(duì)長(zhǎng)期以來(lái)的奮斗目標(biāo)一直都是超越 CPython,成為各種 Python 實(shí)現(xiàn)版本中的王者。

但這一夢(mèng)想一直沒(méi)能實(shí)現(xiàn)。究其原因,一個(gè)重要的障礙可能來(lái)自版本支持:PyPy 的更新一直落后于 Python 語(yǔ)言的主流版本,即它并不支持全部的 Python 語(yǔ)法,而且往往不適配那些最新的特性。久而久之,在用戶群里形成了一個(gè)刻板的固有印象:PyPy 只是那些不適配 Python 最新特性的 App 的替代品。

為了扭轉(zhuǎn)這種并不光彩的固有印象,PyPy 在最新版本中做出了改變。

  PyPy3.5 引入 Python 3 支持

改變之一是對(duì) Python 新特性的支持。

在此次更新的 PyPy3.5 版本中,PyPy 開(kāi)始全面支持 Python 3 的語(yǔ)法,包括可以更方便地進(jìn)行異步編程(asynchronous programming)。不但如此,PyPy3.5 還支持在 Python 3.4 中引入的異步模塊 asyncio(包括 async/await 語(yǔ)法),而且有評(píng)論稱,相對(duì)原版,該特性在 PyPy 中得到了相當(dāng)大的性能提升。

另外,在 Python 3.6 中引入的 f-strings 特性,也在此次更新的 PyPy3.5 版本中得到了支持。事實(shí)上,f-strings 并非一個(gè)普遍受歡迎的特性,因?yàn)樗鼉H僅提供了一個(gè)本地字符串格式化的簡(jiǎn)化選項(xiàng),但此次依然獲得了 PyPy3.5 的支持。這一點(diǎn)或許從另一個(gè)側(cè)面反映了 PyPy 的改變:如果需要,未來(lái) PyPy 可以支持更多的最新特性。

對(duì)于這些改變,有評(píng)論認(rèn)為可能是源于去年 Mozilla 基金會(huì)授予 PyPy 團(tuán)隊(duì)的高達(dá) 20 萬(wàn)美元的援助資金?,F(xiàn)在看來(lái),這項(xiàng)投資似乎物有所值。

PyPy 雙版本同步更新,不僅僅是快

  PyPy2.7 提升 C 擴(kuò)展包兼容性

另一個(gè)改進(jìn)是基于 Python 2 的 C 擴(kuò)展包支持。

此前 PyPy2(基于 Python 2.x )的開(kāi)發(fā)進(jìn)度一直領(lǐng)先于 PyPy3(基于 Python 3.x ),這次 PyPy2 也沒(méi)有落后。PyPy2.7 中除了適配 Python 2.x 最新的 bug 修復(fù)版 Python 2.7.13 之外,最大的亮點(diǎn)在于大大改善了對(duì) C 擴(kuò)展包的兼容性。

此前,Python 的 C 擴(kuò)展包并不能像其他 Python 代碼一樣流暢地通過(guò) PyPy 解釋運(yùn)行,而是必須借助一個(gè)名為 cpyext 的 API 兼容層。在此次更新中,PyPy 進(jìn)一步改善了 cpyext 的效率,用戶在 PyPy2.7 中可以方便地 import 包括 Numpy、Cython、Pandas 等在內(nèi)的各種 C 擴(kuò)展包。

這一點(diǎn)對(duì)與那些只支持 Python 2.x 的項(xiàng)目來(lái)說(shuō)無(wú)疑是個(gè)好消息,但先不要高興的太早。因?yàn)?PyPy 團(tuán)隊(duì)明確在博客中指出:C 擴(kuò)展包的運(yùn)行速度,尤其是針對(duì)那些調(diào)用頻繁的 C 語(yǔ)言短函數(shù),PyPy 的運(yùn)行速度可能會(huì)比 CPython 慢。但同時(shí)團(tuán)隊(duì)也表示,如果開(kāi)發(fā)者真的發(fā)現(xiàn) PyPy 在運(yùn)行過(guò)程中有速度瓶頸的話,可以隨時(shí)通知他們,他們會(huì)在第一時(shí)間做出改進(jìn)。

關(guān)于這一點(diǎn),目前一個(gè)有效的解決方案是直接把 C 擴(kuò)展包移植到 PyPy,就像 NumPy 在 PyPy 下的分支版本 NumPyPy 那樣,充分利用 PyPy 的原生接口來(lái)集成 C 代碼。但是考慮到這種方案有悖于 PyPy 團(tuán)隊(duì)推出 cpyext 兼容層的初衷,因此并不是一個(gè)值得推薦的長(zhǎng)期解決方案。

另外值得一提的是,消息稱從 2020 年開(kāi)始,社區(qū)將停止對(duì) Python 2.x 版本的支持。但現(xiàn)實(shí)是,由于各種各樣的不可抗力,屆時(shí)可能仍然會(huì)有許多團(tuán)隊(duì)不得不繼續(xù)使用 Python 2.x 的代碼。那時(shí) PyPy 將會(huì)是一個(gè)不錯(cuò)的選擇,畢竟 PyPy 最初就是以 Python 2.x 為核心發(fā)展起來(lái)的。

原文地址:http://www.infoworld.com/article/3183527/application-development/pypy-powers-up-python-35.html 

PyPy 博客地址:https://morepypy.blogspot.com/2017/03/pypy27-and-pypy35-v57-two-in-one-release.html 

PyPy 最新代碼地址:http://pypy.org/download.html 

雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))相關(guān)閱讀:

TOP5%Kaggler:如何在 Kaggle 首戰(zhàn)中進(jìn)入前 10% | 干貨

Cloudera 發(fā)布自助式數(shù)據(jù)科學(xué)開(kāi)發(fā)環(huán)境 原生支持 R、Python、Scala 和各大開(kāi)源框架

支持Python!Facebook開(kāi)源預(yù)測(cè)工具Prophet

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知

PyPy 雙版本同步更新,不僅僅是快

分享:
相關(guān)文章

編輯

歡迎交流,微信:whl123465
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)