Python直接变快五倍?最新的优化解释器和内存管理

news2025/1/21 0:48:04

来自公众号:OSC开源社区

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 的计划。

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

  • 推出 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 团队在这场斗争中在“政治”上处于更好的位置。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/943299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Boost开发指南-4.11config

config config库主要是提供给Boost库开发者(而不是库用户)使用,它将程序的编译配置分解为三个正交的部分:平台、编译器和标准库,帮助他们解决特定平台特定编译器的兼容问题。 一般来说,config库不应该被库…

《Flink学习笔记》——第二章 Flink的安装和启动、以及应用开发和提交

​ 介绍Flink的安装、启动以及如何进行Flink程序的开发,如何运行部署Flink程序等 2.1 Flink的安装和启动 本地安装指的是单机模式 0、前期准备 java8或者java11(官方推荐11)下载Flink安装包 https://flink.apache.org/zh/downloads/hadoop&a…

循环购商业模式:挖掘用户价值,创新引领商业未来-微三云门门

亲爱的企业家们,我是微三云门门!今天,我将为大家详细介绍一种颠覆性的商业模式:循环购商业模式。这个模式不仅可以帮助企业提升平台的复购率,还能够拉新用户并提升用户的消费率。让我们一起深入了解这个引人注目的商业…

MySQL8.Xx安装控制台未参数随机密码解决方案

MySQL8.xx一主两从复制安装与配置 MySQL8.XX随未生成随机密码解决方案 一: Mysql 安装时控制台未生成密码 安装过程中解压或者时安装时报错等,这种情况一般是因网络等其他原因导致下载的安装包不完整, 重新下载安装即可; 二: 安装解压都没问题,就是不生成随机密…

软件测试用例经典方法 | 单元测试法案例

单元测试又称模块测试,是对软件设计的最小单元的功能、性能、接口和设计约束等的正确性进行检验,检查程序在语法、格式和逻辑上的错误,并验证程序是否符合规范,以发现单元内部可能存在的各种缺陷。 单元测试的对象是软件设计的最…

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 内容简介 作者简介 使用Python做一个计算器 本期赠书 近年来国家大力支持半导体行业&#xff0…

前端组件库造轮子——Tree组件开发教程

前端组件库造轮子——Tree组件开发教程 前言 本系列旨在记录前端组件库开发经验,我们的组件库项目目前已在Github开源,下面是项目的部分组件。文章会详细介绍一些造组件库轮子的技巧并且最后会给出完整的演示demo。 文章旨在总结经验,开源分…

三雄极光家居秋季新品发布,争滔滔不绝!

​8月28日,三雄极光2023家居秋季新品发布暨订货会于中山古镇盛大启幕,会议以“聚力革新 影势领行”为主题,采用线上、线下相结合的方式举行。三雄极光总裁张宇涛、副总裁林岩、营销总经理陈勤显、家居事业部副总经理赵峰等领导出席了本次会议…

hdfs操作

hadoop fs [generic options] [-appendToFile … ] [-cat [-ignoreCrc] …] [-checksum …] [-chgrp [-R] GROUP PATH…] [-chmod [-R] <MODE[,MODE]… | OCTALMODE> PATH…] [-chown [-R] [OWNER][:[GROUP]] PATH…] [-copyFromLocal [-f] [-p] [-l] [-d] … ] [-copyTo…

大学生开学必备清单|你有一份开学必备物品清单,请查收!

​又到了要开学的时候&#xff0c;面对开学季&#xff0c;很多同学还不知道需要准备哪些东西&#xff0c;为了让同学们能够准备充分大学生活&#xff0c;作为一个过来人&#xff0c;下面就来和你们唠一唠进入大学的时候&#xff0c;需要用到什么东西&#xff0c;以及有什么是开…

jumpserver堡垒机添加资产配置

目录 jumpserver堡垒机添加资产配置 1、创建jumpserver管理用户&#xff0c;登录jumpserver堡垒机 2、创建普通用户&#xff0c;管理资源服务器 3、创建特权用户&#xff0c;登录资源服务器 4、添加资源 5、资产授权 6、登录jumpserver&#xff0c;创建的jumpserver用户 7、…

【LeetCode】28 . 找出字符串中第一个匹配项的下标

28 . 找出字符串中第一个匹配项的下标&#xff08;简单&#xff09; 方法&#xff1a;双指针法 思路 使用 find 函数枚举原串 ss 中的每个字符作为「发起点」&#xff0c;每次从原串的「发起点」和匹配串的「首位」开始尝试匹配&#xff1a; 匹配成功&#xff1a;返回本次匹配…

撮合前端平台在低代码平台的落地实践 | 京东云技术团队

在京东技术的发展当下&#xff0c;不同的业务线&#xff0c;不同的区域&#xff0c;甚至于很多触达消费者的端&#xff0c;正在被中台架构能力所支撑。大家都很清楚&#xff0c;中台建设能够带来技术的规模化效应&#xff0c;具有提高业务协同、加速创新和交付速度、提高系统稳…

el-table动态生成多级表头的表格(js + ts)

展示形式&#xff1a; 详细代码&#xff1a; &#xff08;js&#xff09; <template><div><el-table :data"tableData" style"width: 100%"><el-table-column label"题目信息" align"center"><el-table-…

气传导耳机什么牌子好?盘点四款实用性不错的气传导耳机推荐

​对于追求健康和舒适的人来说&#xff0c;不入耳的气传导耳机更是一个理想的选择。气传导耳机采用不入耳设计&#xff0c;上耳效果更舒适&#xff0c;避免了对耳朵的压迫&#xff0c;还提供清晰、自然的音质。那么&#xff0c;面多市面上这么多气传导耳机&#xff0c;哪款比较…

2023年DAMA-CDGA/CDGP数据治理认证线上到这里学习

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

Docker 安装 portainer 管理神器

目录 1. 安装 Docker2. 安装 Portainer3. 创建容器4. 设置 Portainer 官网&#xff1a;https://www.portainer.io/ Portainer是一个开源的容器管理工具&#xff0c;它提供了一个直观的Web界面&#xff0c;用于管理和监控Docker容器。通过Portainer&#xff0c;您可以轻松地创建…

提前还贷计算器,可计算多次提前还款,何时还清贷款和一共要还多少利息,以及每月还款明细

这是一个提前还贷的计算器&#xff0c;特点是可以计算多次提前还款。 比如房贷120万&#xff0c;由于利息太高&#xff0c;想知道提前还款总共多久可以还清&#xff0c;一共要还多少利息。可以用这个计算器来计算。比如每年还10万&#xff0c;那么在第七次还款&#xff0c;202…

光接口和电模块

电接口 传输信号为&#xff1a;电信号&#xff0c;高电平代表1&#xff0c;低电平代表0 电口是服务器和网络中对RJ45等各种双绞线接口的统称&#xff0c;主要指铜缆&#xff0c;包括普通的网线和射频同轴电缆&#xff0c;是处理电信号的。由于这些端口都使用电作为信息的承载介…

找到字符串中所有字母异位词

力扣链接 官方题解 class Solution { public:vector<int> findAnagrams(string s, string p) {int sLen s.size(), pLen p.size();if (sLen < pLen) {return vector<int>();}vector<int> ans;vector<int> count(26);for (int i 0; i < pLen…