更快、更強(qiáng)的Python實(shí)現(xiàn):Pyston v2.0發(fā)布
比 Python 快 20% 的 Pyston v2.0 來(lái)了。
2014 年,Python 實(shí)現(xiàn) Pyston 誕生。Pyston 的開(kāi)發(fā)目標(biāo)是開(kāi)發(fā)高性能 Python 實(shí)現(xiàn),使 Python 躋身 C++ 等傳統(tǒng)系統(tǒng)級(jí)語(yǔ)言主導(dǎo)的領(lǐng)域。
Pyston 最初是由 Dropbox 推出的基于 JIT 的 Python 實(shí)現(xiàn)。Pyston 解析 Python 代碼,并轉(zhuǎn)換到 LLVM 中間表示(IR),然后 IR 通過(guò) LLVM 優(yōu)化器和 LLVM JIT 引擎,得到可執(zhí)行的機(jī)器碼。
六年過(guò)去,10 月 28 日 Pyston 團(tuán)隊(duì)發(fā)布了最新版本——Pyston v2。
Pyston v2:比 Python 快 20%
據(jù)官方介紹,在宏基準(zhǔn)測(cè)試上 Pyston v2 比 Python 3.8 快了 20%。除了速度快,Pyston v2 還可以降低服務(wù)器成本,減少用戶(hù)等待時(shí)間,提高開(kāi)發(fā)生產(chǎn)力。
此外,Pyston v2 易于部署。如果想獲得更好的 Python 性能,只需花很少的時(shí)間就可以嘗試部署 Pyston。
1. 性能
Pyston v2 在許多工作負(fù)載上的速度有明顯提升。開(kāi)發(fā)者的研究重點(diǎn)一直放在 Web 服務(wù)器工作負(fù)載上,但 Pyston v2 在其他工作負(fù)載和常見(jiàn)基準(zhǔn)上速度也更快。
開(kāi)發(fā)團(tuán)隊(duì)整理了一個(gè)新的公開(kāi) Python 宏基準(zhǔn)測(cè)試套件,該套件可測(cè)量多個(gè)常用 Python 項(xiàng)目的性能。
Pyston v2 在微基準(zhǔn)測(cè)試上也顯示出性能加速。在 chaos.py 和 nbody.py 等測(cè)試中,其速度是標(biāo)準(zhǔn) Python 的 2 倍。
在目標(biāo)基準(zhǔn) (djangocms + flaskblogging) 上,Pyston v2 實(shí)現(xiàn)了平均延遲 1.22x 加速、p99 延遲 1.18x 加速,并且每個(gè)進(jìn)程使用的內(nèi)存僅多了幾 MB。
2. 技術(shù)方法
Pyston v2 使用的技術(shù)包括:
- 利用 DynASM 的低開(kāi)銷(xiāo) JIT;
- Quickening;
- 通用 CPython 優(yōu)化;
- 構(gòu)建進(jìn)程提升。
3. 兼容性
由于 Pyston 是 CPython 的分支,因此開(kāi)發(fā)團(tuán)隊(duì)認(rèn)為 Pyston 是目前兼容性最強(qiáng)的 Python 實(shí)現(xiàn)。它支持 CPython 擁有的所有特性和 C API。
理論上,Pyston 與 CPython 具備同樣的功能,但在實(shí)踐中任何新的 Python 實(shí)現(xiàn)都會(huì)遇到一些暫時(shí)的兼容問(wèn)題。詳情參見(jiàn):https://github.com/pyston/pyston/wiki。
4. 可用性
Pyston v2.0 可作為預(yù)置軟件包立即可用。目前,Pyston v2.0 已具備適用于 Ubuntu 18.04 和 20.04 x86_64 的包。
Pyston 的試用較為簡(jiǎn)單,安裝軟件包,將 python3 替換成 pyston3,然后使用 pip-pyston3 install 重新安裝依賴(lài)項(xiàng)。在已有自動(dòng)構(gòu)建設(shè)置時(shí),這一改變只需幾行即可完成。
Pyston 團(tuán)隊(duì)表示,計(jì)劃未來(lái)將代碼開(kāi)源,但由于編譯器項(xiàng)目成本高昂且沒(méi)有贊助,因此目前該項(xiàng)目仍是閉源的,但 Pyston v1.0 的源代碼是開(kāi)放的。
原文鏈接:https://blog.pyston.org/2020/10/28/pyston-v2-20-faster-python/
【本文是51CTO專(zhuān)欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】