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
    +关注

    关注

    57

    文章

    4858

    浏览量

    89595

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文了解Mojo编程语言

    和 MLIR(多级中间表示)技术,Mojo 的性能接近 C++,甚至在某些任务中比 Python 数万。 支持直接操作硬件资源,如内存管理
    发表于 11-07 05:59

    工程实施不卡壳!蓝蜂MQTT 边缘计算网关设备联网 3

    工程实施不卡壳!蓝蜂MQTT 边缘计算网关设备联网 3 对项目工程实施团队来说,现场最怕遇到两件事:一是设备对接“卡脖子”,二是数据上报 “掉链子”。比如某智慧工厂项目,现场摆着西门子
    的头像 发表于 10-23 17:30 379次阅读
    工程实施不卡壳!蓝蜂MQTT 边缘计算网关<b class='flag-5'>让</b>设备联网<b class='flag-5'>快</b> 3 <b class='flag-5'>倍</b>

    蜂鸟E203内核优化方法

    。 修改内核参数:对蜂鸟E203的内核参数进行相应修改,可以优化内核运行效率,提高系统性能,比如调整缓存大小、内存分配策略等。 资源管理:进行有针对的资源管理,例如调度算法的修改,调整
    发表于 10-21 07:55

    termux如何搭建python游戏

    模拟,支持通过APT包管理器安装软件。搭建Python游戏开发环境前需完成以下基础配置: 1. 更换国内源 为提升下载速度,需替换Termux默认源为清华源,执行以下命令: ```bash
    发表于 08-29 07:06

    灵活高效ZBUFF — C内存数据操作库:优化内存管理的利器

    在C语言开发中,高效的内存管理是提升程序性能的关键。ZBUFF作为一款灵活高效的内存数据操作库,通过优化内存分配与释放机制,为开发者提供了更
    的头像 发表于 08-14 18:01 521次阅读
    灵活高效ZBUFF — C<b class='flag-5'>内存</b>数据操作库:<b class='flag-5'>优化</b><b class='flag-5'>内存</b><b class='flag-5'>管理</b>的利器

    请问如何优化OpenVINO™工具套件中的内存使用?

    运行OpenVINO™推断时找不到优化内存使用情况的方法。
    发表于 06-25 06:56

    鸿蒙5开发宝藏案例分享---长列表性能优化解

    \">ForEach</span>加载方式会导致: 内存暴涨 (10000条数据占用560MB内存!) 首屏加载5秒+ ,滑动疯狂丢帧(丢帧率58
    发表于 06-12 17:40

    鸿蒙5开发宝藏案例分享---内存优化实战指南

    Hey,各位鸿蒙开发者们! 大家有没有这种感觉:官方文档虽然全面,但有时候就像一座巨大的宝库,里面藏着很多超实用的“金矿”,不仔细挖还真发现不了!最近我就意外挖到了关于****内存优化的宝藏章节
    发表于 06-12 17:15

    鸿蒙5开发宝藏案例分享---Web加载时延优化解

    图片过多 懒加载 + 占位图 Image.loadMode=\"lazy\" 重复渲染 组件复用 + @Reusable @Reusable装饰 ?** 性能优化黄金准则** 首屏
    发表于 06-12 17:11

    HarmonyOS优化应用内存占用问题性能优化

    一、使用purgeable优化C++内存 Purgeable Memory是HarmonyOS中native层常用的内存管理机制,可用于图像处理的Bitmap、流媒体应用的一次性数据、
    发表于 05-24 17:20

    HarmonyOS优化应用内存占用问题性能优化

    应用开发过程中注重内存管理,积极采取措施来减少内存占用,以优化应用程序的性能和用户体验。 HarmonyOS提供了一些内存
    发表于 05-21 11:27

    性能飙升!使用Python并行计算榨干树莓派算力!

    甚至微型服务时,你是否也遇到过程序卡顿、视频处理延迟的尴尬?今天我们就手把手教你用Python并行处理技术,树莓派的性能瞬间翻倍!欢迎在评论区晒出你的优化方案,
    的头像 发表于 03-26 17:08 692次阅读
    <b class='flag-5'>让</b>性能飙升!使用<b class='flag-5'>Python</b>并行计算榨干树莓派算力!

    是否可以使用OpenVINO™部署管理器在部署机器上运行Python应用程序?

    使用 OpenVINO™部署管理器创建运行时软件包。 将运行时包转移到部署机器中。 无法确定是否可以在部署机器上运行 Python 应用程序,而无需安装OpenVINO™ Toolkit 和 Python
    发表于 03-05 08:16

    hyper 内存,Hyper内存:如何监控与优化hyper-v虚拟机的内存使用

    在日常工作中,我们常常需要处理大量的文件和数据,这些重复性任务不仅耗时耗力,还容易因疲劳而导致错误。幸运的是,批量管理工具的出现为这一问题提供了高效的解决方案。今天就为大家介绍Hyper内存
    的头像 发表于 01-24 14:15 1685次阅读
    hyper <b class='flag-5'>内存</b>,Hyper<b class='flag-5'>内存</b>:如何监控与<b class='flag-5'>优化</b>hyper-v虚拟机的<b class='flag-5'>内存</b>使用

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

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