0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

让Python快5倍最新计划:优化解释器和内存管理

OSC开源社区 来源:OSC开源社区 2023-06-18 14:26 次阅读

2020 年秋,CPython 核心开发者 Mark Shannon 提出了关于 Python 的几个性能改进,这个提议被称为 “香农计划” (Shannon Plan)。

Shannon 随后创建了 Faster Cpython 项目,他希望在 4 年的时间里,通过多个版本的更新将 Python 的速度提升 5 倍。

不久之后微软正式加入该计划,该公司支持包括 Mark Shannon、Guido van Rossum 在内的开发人员,致力于「Faster CPython」项目的研究。

近日,Mark Shannon 和 Michael Droettboom介绍了面向 Python 3.13 的计划。

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

他们提出了三个可并行推进的工作:

推出 Tier 2 优化器

从 Python 代码中启用子解释器 (PEP 554)

优化内存管理

Tier 2 优化器的目标是将花在解释器上的时间减少至少 50%,其工作计划大致如下:

让 Tier 2 解释器运转起来

生成 superblocks

实现基本的 superblock 管理功能

至于从 Python 代码中启用子解释器,这项工作建立在 Python 3.12 中 per-interpreter GIL 的基础上,方便 Python 程序员利用 Python 代码子解释器中更好的并行性(无需编写 C 扩展)。

目前已有针对这项工作的草案:PEP 554。首先需要更新并推动早日获得批准,以便在必要时改变方向。

最后,关于优化内存管理方面。性能分析数据显示,内存管理和循环 GC 花费了相当多的时间。目前的计划是:

通过改进数据结构来减少分配

花费更少的时间进行循环 GC

至于官方 JIT,Shannon 曾表示实现 JIT 的第一步是实现一个跟踪解释器,但由于需要兼顾其他工作,引入 JIT 编译器的工作还有一段路要走,“最早可能要到 3.13 才能到达”。(其实 Shannon 一直对 CPython 是否真的需要引入 JIT 持怀疑态度)

有开发者“锐评”了该团队与另一个项目的内部斗争 ——完全移除 CPython 解释器的 GIL(全局解释器锁)

他认为 Faster Python 团队在这场斗争中在“政治”上处于更好的位置。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4783

    浏览量

    84473

原文标题:“让Python快5倍”最新计划:优化解释器和内存管理

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DDR5内存的工作原理详解 DDR5和DDR4的主要区别

    的数据传输速率、更大的容量和更低的功耗。 2. DDR5内存工作原理 DDR5内存的工作原理基于双倍数据速率技术,即在每个时钟周期内传输两次数据。DDR
    的头像 发表于 11-22 15:38 186次阅读

    Python环境下的代理服务搭建与自动化管理

    Python环境下搭建与自动化管理代理服务是一项涉及网络编程和自动化技术的综合任务。
    的头像 发表于 11-14 07:31 106次阅读

    如何优化RAM内存使用

    :使用任务管理器查看当前运行的程序和服务,关闭那些不需要的。 禁用启动程序 :减少开机启动项,只保留必要的程序。 2. 优化操作系统设置 调整虚拟内存 :合理设置虚拟内存,避免过多占
    的头像 发表于 11-11 09:58 188次阅读

    Linux内存管理中HVO的实现原理

    代码阅读工具:vim+ctags+cscope本文主要介绍内存管理中的HVO(HugeTLB Vmemmap Optimization)特性,通过HVO可以节省管理HugeTLB 页面元数据
    的头像 发表于 10-22 16:51 187次阅读
    Linux<b class='flag-5'>内存</b><b class='flag-5'>管理</b>中HVO的实现原理

    广州盈致WMS系统:优化仓储管理的智能化解决方案

    WMS系统 是一种基于信息技术的智能化仓储管理解决方案,通过数字化、自动化和智能化的方式,优化企业的仓储管理流程,提高效率、准确性和可控性。以下是WMS系统优化仓储
    的头像 发表于 10-21 14:53 135次阅读

    Windows管理内存的三种主要方式

    Windows操作系统提供了多种方式来管理内存,以确保系统资源的有效利用和性能的优化。以下是关于Windows管理内存的三种主要方式的详细阐
    的头像 发表于 10-12 17:09 438次阅读

    mesh的内存占用能否优化

    余110kb可用。 请问,mesh的内存占用问题能否优化?为何系统剩余大概60K0内存以下的时候系统会因内存不足重启?
    发表于 06-28 15:32

    Linux内核内存管理架构解析

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高
    的头像 发表于 01-04 09:24 636次阅读
    Linux内核<b class='flag-5'>内存</b><b class='flag-5'>管理</b>架构解析

    台电追风A60 DDR5内存条全面上市

    追风A60采用新一代DDR5内存规格,相较DDR4,性能提升接近1。高配6000MHz频率实现DDR4 3200MHz的1.6传输速度和1.9
    的头像 发表于 12-05 15:52 1160次阅读
    台电追风A60 DDR<b class='flag-5'>5</b><b class='flag-5'>内存</b>条全面上市

    Python运行环境有哪些

    Python是一种广泛使用的高级编程语言,它有许多种运行环境,可以适应不同的开发需求。下面将详细介绍Python的几种常见的运行环境。 CPython: CPython是Python的默认解释
    的头像 发表于 11-29 16:14 1918次阅读

    python怎么前面的不运行

    注释。下面是关于如何前面的代码不运行的几种方法: 使用单行注释:使用#符号将要禁止运行的代码行注释掉,以此告诉Python解释不要执行该行代码。例如: # 这是一个示例代码行 #
    的头像 发表于 11-29 15:06 2113次阅读

    pycharm怎么配置python环境变量

    Python 解释。全局配置适用于所有的项目,而项目级别配置仅适用于单个项目。我们将分别介绍这两种配置方式。 在配置 Python 解释
    的头像 发表于 11-29 14:56 2747次阅读

    查看python安装路径的方法

    Python是一种高级编程语言,常用于开发Web应用、数据分析、人工智能等领域。在使用Python进行开发之前,我们需要先安装Python解释
    的头像 发表于 11-29 14:54 1.1w次阅读

    python自带的idle怎么进入

    Python自带的IDLE是一个集成开发环境(Integrated Development Environment),它通过提供编辑和交互式解释,使得
    的头像 发表于 11-29 14:51 2202次阅读

    python shell怎么用

    Python Shell是一种交互式解释,可以通过命令行直接运行Python代码。在Shell中,可以输入一行代码并立即得到结果,非常适合于测试、尝试新代码或进行简单的任务。本文将详
    的头像 发表于 11-29 14:36 1114次阅读