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

    文章

    4797

    浏览量

    84729

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

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

收藏 人收藏

    评论

    相关推荐

    Triton编译与GPU编程的结合应用

    优化,以及生成高效的并行执行计划。 GPU编程的挑战 GPU编程面临的主要挑战包括: 编程复杂性 :GPU编程需要对硬件架构有深入的理解,包括线程、块和网格的概念。 内存管理 :GPU
    的头像 发表于 12-25 09:13 219次阅读

    Linux下如何管理虚拟内存 使用虚拟内存时的常见问题

    在Linux系统中,虚拟内存管理是操作系统内核的一个重要功能,负责管理物理内存和磁盘上的交换空间。以下是对Linux下如何管理虚拟
    的头像 发表于 12-04 09:19 416次阅读

    DDR5内存与DDR4内存性能差异

    速度。 2. 功耗 DDR5内存在功耗方面也有所优化。虽然DDR5内存的起始电压为1.1V,相较于DDR4的
    的头像 发表于 11-29 14:58 432次阅读

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

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

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

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

    如何优化RAM内存使用

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

    Linux内存泄露案例分析和内存管理分享

    内存报警的消息,整个团队都比较紧张,我们团队负责的LB服务是零售、物流、科技等业务服务的流量入口,承接上万个服务的流量转发,一旦有故障影响业务服务比较多,必须马上着手解决内存暴涨的问题。目前只是
    的头像 发表于 10-24 16:14 741次阅读
    Linux<b class='flag-5'>内存</b>泄露案例分析和<b class='flag-5'>内存</b><b class='flag-5'>管理</b>分享

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

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

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

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

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

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

    MES系统 源码 ——MES生产计划管理模块

    透明化管理。 MES从ERP得到生产订单指令,进而工厂的生产线根据生产订单要求,进行工序下达,完成产品的交付 MES系统生产计划管理功能 生产计划制定与
    的头像 发表于 10-06 15:29 390次阅读
    MES系统 源码 ——MES生产<b class='flag-5'>计划</b><b class='flag-5'>管理</b>模块

    内存管理的硬件结构

    常见的内存分配函数有malloc,mmap等,但大家有没有想过,这些函数在内核中是怎么实现的?换句话说,Linux内核的内存管理是怎么实现的?
    的头像 发表于 09-04 14:28 329次阅读
    <b class='flag-5'>内存</b><b class='flag-5'>管理</b>的硬件结构

    mesh的内存占用能否优化

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

    如何使用linux下gdb来调试python程序

    GDB: ``` $ sudo apt install gdb ``` 安装完成后,需要安装Python调试符号。这些符号文件包含了Python解释的调试信息,使得GDB能够
    的头像 发表于 01-31 10:41 2638次阅读

    Linux内核内存管理架构解析

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