0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

讓Python快5倍最新計劃:優(yōu)化解釋器和內(nèi)存管理

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2023-06-18 14:26 ? 次閱讀

2020 年秋,CPython 核心開發(fā)者 Mark Shannon 提出了關(guān)于 Python 的幾個性能改進,這個提議被稱為 “香農(nóng)計劃” (Shannon Plan)。

Shannon 隨后創(chuàng)建了 Faster Cpython 項目,他希望在 4 年的時間里,通過多個版本的更新將 Python 的速度提升 5 倍。

不久之后微軟正式加入該計劃,該公司支持包括 Mark Shannon、Guido van Rossum 在內(nèi)的開發(fā)人員,致力于「Faster CPython」項目的研究。

近日,Mark Shannon 和 Michael Droettboom介紹了面向 Python 3.13 的計劃。

56367032-0d0b-11ee-962d-dac502259ad0.png

他們提出了三個可并行推進的工作:

推出 Tier 2 優(yōu)化器

從 Python 代碼中啟用子解釋器 (PEP 554)

優(yōu)化內(nèi)存管理

Tier 2 優(yōu)化器的目標是將花在解釋器上的時間減少至少 50%,其工作計劃大致如下:

讓 Tier 2 解釋器運轉(zhuǎn)起來

生成 superblocks

實現(xiàn)基本的 superblock 管理功能

至于從 Python 代碼中啟用子解釋器,這項工作建立在 Python 3.12 中 per-interpreter GIL 的基礎(chǔ)上,方便 Python 程序員利用 Python 代碼子解釋器中更好的并行性(無需編寫 C 擴展)。

目前已有針對這項工作的草案:PEP 554。首先需要更新并推動早日獲得批準,以便在必要時改變方向。

最后,關(guān)于優(yōu)化內(nèi)存管理方面。性能分析數(shù)據(jù)顯示,內(nèi)存管理和循環(huán) GC 花費了相當多的時間。目前的計劃是:

通過改進數(shù)據(jù)結(jié)構(gòu)來減少分配

花費更少的時間進行循環(huán) GC

至于官方 JIT,Shannon 曾表示實現(xiàn) JIT 的第一步是實現(xiàn)一個跟蹤解釋器,但由于需要兼顧其他工作,引入 JIT 編譯器的工作還有一段路要走,“最早可能要到 3.13 才能到達”。(其實 Shannon 一直對 CPython 是否真的需要引入 JIT 持懷疑態(tài)度)

有開發(fā)者“銳評”了該團隊與另一個項目的內(nèi)部斗爭 ——完全移除 CPython 解釋器的 GIL(全局解釋器鎖)。

他認為 Faster Python 團隊在這場斗爭中在“政治”上處于更好的位置。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84306

原文標題:“讓Python快5倍”最新計劃:優(yōu)化解釋器和內(nèi)存管理

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    廣州盈致WMS系統(tǒng):優(yōu)化倉儲管理的智能化解決方案

    WMS系統(tǒng) 是一種基于信息技術(shù)的智能化倉儲管理解決方案,通過數(shù)字化、自動化和智能化的方式,優(yōu)化企業(yè)的倉儲管理流程,提高效率、準確性和可控性。以下是WMS系統(tǒng)優(yōu)化倉儲
    的頭像 發(fā)表于 10-21 14:53 ?81次閱讀

    Windows管理內(nèi)存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來管理內(nèi)存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關(guān)于Windows管理內(nèi)存的三種主要方式的詳細闡
    的頭像 發(fā)表于 10-12 17:09 ?177次閱讀

    臺電追風A60 DDR5內(nèi)存條全面上市

    追風A60采用新一代DDR5內(nèi)存規(guī)格,相較DDR4,性能提升接近1。高配6000MHz頻率實現(xiàn)DDR4 3200MHz的1.6傳輸速度和1.9
    的頭像 發(fā)表于 12-05 15:52 ?1080次閱讀
    臺電追風A60 DDR<b class='flag-5'>5</b><b class='flag-5'>內(nèi)存</b>條全面上市

    Python運行環(huán)境有哪些

    Python是一種廣泛使用的高級編程語言,它有許多種運行環(huán)境,可以適應不同的開發(fā)需求。下面將詳細介紹Python的幾種常見的運行環(huán)境。 CPython: CPython是Python的默認解釋
    的頭像 發(fā)表于 11-29 16:14 ?1811次閱讀

    python怎么前面的不運行

    注釋。下面是關(guān)于如何前面的代碼不運行的幾種方法: 使用單行注釋:使用#符號將要禁止運行的代碼行注釋掉,以此告訴Python解釋不要執(zhí)行該行代碼。例如: # 這是一個示例代碼行 #
    的頭像 發(fā)表于 11-29 15:06 ?1860次閱讀

    查看python安裝路徑的方法

    Python是一種高級編程語言,常用于開發(fā)Web應用、數(shù)據(jù)分析、人工智能等領(lǐng)域。在使用Python進行開發(fā)之前,我們需要先安裝Python解釋
    的頭像 發(fā)表于 11-29 14:54 ?1.1w次閱讀

    運行Python程序的幾種常見方法

    方法: 使用Python解釋 Python解釋是運行Py
    的頭像 發(fā)表于 11-28 15:32 ?2184次閱讀

    如何運行Python程序

    運行Python程序非常簡單。Python是一種解釋型語言,這意味著可以直接通過解釋來執(zhí)行代碼。下面我將詳細介紹如何運行
    的頭像 發(fā)表于 11-24 09:31 ?1074次閱讀

    python代碼寫完后點哪個運行

    當你完成了編寫Python代碼后,你可以選擇多種方式來運行它。下面是幾種常見的運行代碼的方式: Python解釋Python是一種
    的頭像 發(fā)表于 11-24 09:28 ?4298次閱讀

    Python自帶的命令窗口

    Python自帶的命令窗口,也稱為Python交互式解釋,是Python編程語言的一個重要工具,它允許用戶在命令行界面中輸入和執(zhí)行
    的頭像 發(fā)表于 11-22 14:02 ?824次閱讀

    pycharm中python interpreter怎么設(shè)置

    在PyCharm中設(shè)置Python解釋非常簡單,只需按照以下步驟操作: 打開PyCharm,并打開你的項目。 在菜單欄中選擇"File"(文件),然后選擇"Settings"(設(shè)置)。在
    的頭像 發(fā)表于 11-22 11:08 ?2858次閱讀

    python怎樣運行代碼

    討論Python代碼的運行方式,包括解釋、交互式環(huán)境和命令行。 Python代碼可以通過兩種主要的方式運行:解釋執(zhí)行和編譯執(zhí)行。
    的頭像 發(fā)表于 11-22 10:31 ?1093次閱讀

    Linux 內(nèi)存管理總結(jié)

    一、Linux內(nèi)存管理概述 Linux內(nèi)存管理是指對系統(tǒng)內(nèi)存的分配、釋放、映射、管理、交換、壓縮
    的頭像 發(fā)表于 11-10 14:58 ?468次閱讀
    Linux <b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>總結(jié)

    如何Python和Go互相調(diào)度

    我們曾經(jīng)研究過如何Python和Go互相調(diào)度,當時發(fā)現(xiàn),將Go語言寫的模塊打包成動態(tài)鏈接庫,就能在Python中進行調(diào)度: 優(yōu)劣互補! Python+Go結(jié)合開發(fā)的探討 Go的優(yōu)勢很
    的頭像 發(fā)表于 11-02 11:24 ?519次閱讀
    如何<b class='flag-5'>讓</b><b class='flag-5'>Python</b>和Go互相調(diào)度

    使用Rust優(yōu)化Python性能

    在數(shù)據(jù)分析領(lǐng)域Python無疑是最流行的編程語言,但是Python有一個硬傷就是作為一個編譯語言在性能上有些微的欠缺。而同樣最流行的語言Rust則在性能方面表現(xiàn)優(yōu)秀。本文我們一起學習一個優(yōu)化項目的實踐,對一個數(shù)據(jù)分析程序,改為R
    的頭像 發(fā)表于 11-01 15:59 ?801次閱讀
    使用Rust<b class='flag-5'>優(yōu)化</b><b class='flag-5'>Python</b>性能