<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 3.11 ,即將變得更快!

          共 2579字,需瀏覽 6分鐘

           ·

          2022-07-23 13:20

          ↑ 關(guān)注 + 星標 ,每天學(xué)Python新技能

          后臺回復(fù)【大禮包】送你Python自學(xué)大禮包

          來源:CSDN

          作為一門異常受歡迎的編程語言,Python 的優(yōu)點有很多,比如:易于學(xué)習(xí)、用途廣泛、有成千上萬個用于數(shù)據(jù)科學(xué)的有用的庫。但同時,Python 一直被詬病的就是它運行速度太慢。


          在去年的 PyCon US 2021 大會上,Python 之父 Guido van Rossum 曾表示:要在 2022 年的 Python 3.11 中,將 Python 速度提高 2 倍,4 年內(nèi),速度提升 5 倍,以解決 Python 與 C++ 等其他編程語言相比在速度上的關(guān)鍵缺點。

          如今,速度太慢的情況在 Python 3.11 中即將改變。在今年晚些時候發(fā)布穩(wěn)定版之前,目前正處于其預(yù)覽版(版本 3.11.0b1)的第一個測試階段。


          CPython 3.11 已比 3.10 提速 1.25 倍

          在近期的 PyCon US 2022 會議上,Core Python(CPython)開發(fā)者 Mark Shannon 分享了關(guān)于加速 Python 項目的細節(jié),此外,開發(fā)者還展示了在瀏覽器中運行 Python 代碼這一目標的進展。

          去年,微軟資助了 Python 軟件基金會(PSF)的一個項目——“Shannon Plan”,該項目由 Python 創(chuàng)造者 Guido van Rossum 和 Mark Shannon 領(lǐng)導(dǎo),承諾在今年的 Python 3.11 中將其速度提高 2 倍。其愿景是促使 Python 向 C 語言的性能發(fā)展。

          微軟在 2020 年聘請了 van Rossum,并讓他自由選擇任何項目。在去年的 PyCon US 2021 會議上,他稱自己 "選擇回到我的根源",并將致力于解決 Python 著名的性能不足問題

          性能也許并不是 Python 的首要任務(wù),因為機器學(xué)習(xí)和數(shù)據(jù)科學(xué)的采用得益于 TensorFlow、NumPy、Pandas 以及更多的平臺,如 AWS 的 Boto3 SDK for Python。這些平臺每月被下載數(shù)千萬次,并在通常不受硬件限制的環(huán)境中使用。

          Faster CPython項目(GitHub地址:https://github.com/faster-cpython/ideas/blob/main/main-vs-310.rst)提供了一些關(guān)于 CPython 3.11 在過去一年的性能更新。在 PyCon US 2022 會議之前,該項目公布了更多的結(jié)果:在幾十個性能指標上對 3.11 測試預(yù)覽版和 3.10 進行了比較,顯示 3.11.0b1 總體上比 3.10 快 1.25 倍


          新的字節(jié)碼解釋器使錯誤處理更高效


          Shannon 對該項目提高 Python 性能的能力持現(xiàn)實態(tài)度,但他相信這些改進可以將 Python 的可行用途擴展到更多的虛擬機。他去年在 Python 增強提案(PEP)659 中寫道:“Python 被廣泛認為是緩慢的。

          雖然 Python 永遠達不到 C、Fortran 甚至 Java 等低級語言的性能,但我們希望它能與腳本語言的快速實現(xiàn)相媲美,如 Javascript 的 V8 或 Lua 的 LuaJIT。具體來說,我們希望通過 CPython 實現(xiàn)這些性能目標,使所有 Python 用戶受益,包括那些無法使用 PyPy 或其他替代性虛擬機的用戶。”

          在 PEP 659 中詳述的關(guān)鍵方法是:“專門化的、自適應(yīng)的解釋器,但它在一個非常小的區(qū)域內(nèi)積極地專門化代碼,并能夠迅速和低成本地適應(yīng)錯誤的專門化。

          如上所述,虛擬機的優(yōu)化是 "昂貴的",往往需要很長的 "預(yù)熱 "時間。為了避免這種時間開銷,虛擬機應(yīng)該推測“即使在一個函數(shù)執(zhí)行幾次后,專門化也是合理的”。所以,解釋器需要持續(xù)地且非常低廉地進行優(yōu)化和去優(yōu)化。

          這應(yīng)該會產(chǎn)生一個更快的 CPython 解釋器,它可以在程序執(zhí)行過程中跟蹤單個字節(jié)碼。據(jù) Python 軟件基金會(PSF)稱,新解釋器的工作幾乎已經(jīng)完成,但仍需要完成循環(huán)和二進制操作的動態(tài)專門化。

          此外,3.11 的內(nèi)存消耗與 3.10 相比沒有變化。


          CPython JIT 編譯器即將實現(xiàn)


          關(guān)于 Python 性能的即時(JIT)編譯器問題,根據(jù) Python 軟件基金會(PSF)對該事件的報道,Shannon 認為這不是一個優(yōu)先事項,可能最早也要到 Python 3.13 才能實現(xiàn)。

          此外,用于數(shù)據(jù)科學(xué)的 Anaconda Python 發(fā)行版的制造商 Anaconda,正在支持 Pyston 項目,該項目是 Python 的一個實現(xiàn),承諾比 Python 有速度上的提高。

          Anaconda 在加速 Python 方面較早的努力之一是 Numba 項目,這是一個基于 LLVM 的 CPython JIT 編譯器,它可以加速在 CPU 或 GPU 上運行的 Python 數(shù)值函數(shù),但不能優(yōu)化整個程序,也不能解決更廣泛的 Python 用例。另一個是 PyPy,它是 CPython 的一個實現(xiàn),帶有JIT編譯器以獲得更快的性能。

          根據(jù)Faster CPython項目的實施計劃(GitHub地址:https://github.com/markshannon/faster-cpython/blob/master/plan.md),CPython 3.12 可能會獲得一個 "用于小區(qū)域的簡單 JIT 編譯器",在運行時使用相對簡單、快速的編譯器編譯小區(qū)域的專門代碼;而 CPython 3.13 將擴展編譯區(qū)域,增強編譯器以生成卓越的機器代碼

          最后,對于以上 Faster CPython 項目加速 Python 的做法,你有什么看法?歡迎在評論區(qū)留言

          參考鏈接:

          https://www.zdnet.com/article/programming-languages-python-is-slow-but-its-about-to-get-faster/

          - EOF -


          1. 放棄 Notepad++,事實證明,還有 5 款更牛逼……

          2. Python如何進行大數(shù)據(jù)分析?

          3. Python辦公自動化,全網(wǎng)最全整理!



          瀏覽 28
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩v | 日本极品在线 | 亚洲成人性爱在线 | 亚洲欧洲在线aa观看视频 | 三级无码视频 |