千家信息网

如何分析Python 3.9 性能优化中的vectorcall

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,如何分析Python 3.9 性能优化中的vectorcall,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python 的 3.9.0
千家信息网最后更新 2026年11月02日如何分析Python 3.9 性能优化中的vectorcall

如何分析Python 3.9 性能优化中的vectorcall,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Python 的 3.9.0 版本正在开发中,计划在 2020-10-05 发布final版本。

官方在 changelog 中披露了很多细节,其中有一项"vectorcall"特性是最容易被接受的。

事实上,早在 Python 3.8 版本中就已部分地实现了 vectorcall,只不过它是暂时性的,被隐藏起来了,按计划是在 3.9 版本中实现完全体。下图是 3.8 版本中的简介:

那么,什么是 vectorcall 呢?它会带来哪些变化呢?

"a fast calling protocol for CPython",即它是 CPython 的一种快速调用协议,可以加速 CPython 解释器在调用类对象时的速度。

(PS:需要注意的是,这里说的"协议"是一种广义的称呼,它跟我们熟知的网络协议或通信协议不同,可理解为对代码作调用时的一种约定、一种实现方式)

这种协议是在 PEP-590 中被提出的(时间是 2019-03-29),对应的 bpo 是 issue37207,历时近一年的开发,目前它的实现已合入了代码仓。

用一句话概括它的核心要点是:它将提升 list()、tuple()、dict() 等主要类型的调用速度,同时它还可以被用在自定义的类上。

结合 PEP 与 bpo 信息,我提炼了以下的详细要点:
  • vectorcall 是对 fastcall 的正式化。在之前的 CPython 中存在一些零散的优化点(即 fastcall),如今官方把它们系统化了,给出了一个正式的"vectorcall"称呼。

  • vectorcall 适用于多数内置类型。据当前的披露信息,它适用于 list、tuple、dict、set、frozenset 与 range 这 6 种主要的内置类型(部分测量数据显示,速度提升率达 10%~30%)。

  • vectorcall 是对性能与灵活性的调和。之前的解释器具有很高的灵活性,但是在对象调用过程中,存在不必要的中间对象以及间接的调用开销,如今是设法消除了这部分开销,得以提升了性能。

看完上述内容,你们掌握如何分析Python 3.9 性能优化中的vectorcall的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

版本 性能 对象 是在 类型 速度 分析 代码 信息 内容 官方 开销 方法 更多 灵活性 称呼 要点 解释器 部分 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 互联网与科技 上海睿民互联网科技有限公司 互联网科技活动banner 港股互联网科技股 互联网科技公司发展 美国互联网科技 善班互联网科技有限公司 西安互联网科技公司 长亮科技 互联网金融 山东吉时兔互联网科技有限公司 成都玖崟互联网科技有限公司乐商圈怎么样 宁夏科技产业互联网案例 千方科技属于互联网企业吗 2021互联网科技公司排名 深圳互联网科技的发展 上海创道互联网络科技有限公司 半导体行业属于互联网高科技类吗 中国科技和美国互联网 重庆科技产业互联网有哪些 上海睿民互联网科技有限公司 互联网科技金融公司 世界互联网领先科技成果 美国互联网前沿科技 恒生科技互联网指数分析 阿里巴巴算科技企业还是互联网 河南猎农互联网科技有限公司 美国互联网科技实力 浙南科技城互联网大厦招聘 西安有哪些互联网高科技企业
0