Python 之父爆料:明年至少令 Python 提速 1 倍!
大概在半年前,我偶然看到一篇文章,有人提出了給 Python 提速 5 倍的計(jì)劃,并在尋找經(jīng)費(fèi)贊助。當(dāng)時(shí)并沒(méi)有在意,此后也沒(méi)有看到這方面的消息。
但是,就在 5 月 13 日“2021 年 Python 語(yǔ)言峰會(huì)”上,Python 之父 Guido van Rossum 作了一場(chǎng)《 Making CPython Faster 》的分享,他已經(jīng)投入了這項(xiàng)計(jì)劃!
據(jù) Guido 爆料,他因?yàn)?ldquo;退休”無(wú)聊,申請(qǐng)加入了微軟,因此組建起一個(gè)小團(tuán)隊(duì)。目前成員除了他還有兩個(gè):Eric Snow(Python 核心開(kāi)發(fā)者之一、微軟高級(jí)工程師)和 Mark Shannon(本文第一段那個(gè)計(jì)劃的提出者,精通 Python 性能研究)。
整個(gè)計(jì)劃被稱為“香農(nóng)計(jì)劃”(即“Shannon Plan”,得名于提出者),期望花 4 年時(shí)間把 Python 提速 5 倍,即每年 1.5 倍?,F(xiàn)在短期的計(jì)劃是在 Python 3.11 版本中實(shí)現(xiàn)至少提速 1 倍。
按照官方的發(fā)布周期,今年 10 月會(huì)發(fā)布 3.10 版本,而 3.11 版本將在 2022 年 10 月發(fā)布。
怎么做到令 3.11 版本提速一倍呢?
根據(jù) Guido 的分享,第一項(xiàng)優(yōu)化工作是“適應(yīng)性的、專門的字節(jié)碼解釋器”,相關(guān)的設(shè)想已經(jīng)起草到 PEP-659 中:
其它的優(yōu)化內(nèi)容還有:
- 優(yōu)化幀堆棧,更快的調(diào)用,調(diào)整分配( optimize frame stack, faster calls, tweak allocation)
- “零開(kāi)銷”異常處理(“Zero overhead” exception handling)
以及這些工作:
這些優(yōu)化工作都要在不破壞接口兼容性的前提下實(shí)現(xiàn),同時(shí)還要保持代碼的可維護(hù)性。
在 Guido 的分享中,還有很多細(xì)節(jié)內(nèi)容。在這里,我們把完整的分享材料貼一下吧。