Faster CPython 远未达到预期

2023-02-16 16:31:14 +08:00
 vicalloy

最初 PPT ( 2021.5 )里的目标:
每年提升 1.5x ,4 年 5x 的性能提升,3.11 速度翻倍 。

实际情况:
提升了不到 1.3x,arm 下性能提升改更小( 1.24x )。

https://github.com/faster-cpython/ideas/blob/main/README.md

2805 次点击
所在节点    Python
9 条回复
dlsflh
2023-02-16 16:38:34 +08:00
我自己的的代码主要用了 coolprop 和 scipy 这两个库,用 Spyder 的性能分析测,从 3.8 升级到 3.11 还给慢了 10%以上。
dlsflh
2023-02-16 16:43:14 +08:00
接 1 楼。
虽然库背后的 c/fortran 代码没变,但想着其他部分的 python 逻辑能快一点是一点。没想到还变慢了…
qW7bo2FbzbC0
2023-02-16 17:06:51 +08:00
想起来那句吐槽的话,“给母猪化妆”。 术业有专攻,有擅长的也有不擅长的。Python 这个速度在动态语言里面已经不算慢了吧
LaTero
2023-02-16 18:14:59 +08:00
@qW7bo2FbzbC0 动态也垫底,v2 之前也有不少人发过 benchmark ,julia 也是动态,性能差不多是 python 的 50 倍
makelove
2023-02-16 19:35:01 +08:00
为什么 python 会这么慢,语言设计的原因吗,还不如都转 js 呢,语法还更舒服一点
julyclyde
2023-02-17 09:20:16 +08:00
谢谢 OP 的消息

我看了帖子才知道还有这么个项目。而且他们的 ideas repository 好像只有“内容”?程序是改在他们对 cpython 的 fork 上的吗?
vicalloy
2023-02-17 10:08:53 +08:00
@julyclyde 这个项目的发起人就是 Python 的作者,相当于给 CPython 拉投资 。他们改动的就是官方的 CPython 。
Python 的速度在脚本语言里也算慢的。以前说 Ruby 慢,Python 比 Ruby 还慢。
CPython 最大的好处还是 C 扩展比较好写。特别是 PyO3 出来后,用 Rust 写扩展很舒服。
penguinWWY
2023-02-17 18:22:25 +08:00
欠债太多了,得慢慢补
其实 4 年提升 5 倍这个对比 python 的 base 不算离谱,但是每年 50%就完全是拍脑袋,为了 ppt 好看
NoAnyLove
2023-03-08 11:28:04 +08:00
预计 3.12 推出的 Tier 2 优化 trace optimizer ( specializing adaptive 是 Tier 1 )延期了[link]( https://github.com/faster-cpython/ideas/wiki/Python-3.12-Goals)。距离 Beta 1 还有两个月时间,目前看来 3.12 的优化没啥大的变化,大概从 1.25x 涨到了 1.30x 。

3.12 的新的特性 /功能:
* PEP-684 Per-interpreter GIL 。但是没有 channel ,缺少能在不同 subintepreter 高效移动 /复制对象的方法,估计需要用户自己用 shared memory 撸轮子。并不像 Go 的 goroutine 那么丝滑,不过也算是有趣的尝试,指不定哪个大神就搞出新的玩法。
* PEP-683 Immortal Objects 。目前看来对性能影响不大,甚至有一定性能损耗。
* register-based interpreter 。之前讨论得很火,但是现在没啥进展(理论上大概是 5%的性能提升?)。估计 3.12 没戏
* nogil 。虽然 Sam 开了一个新的 nogil3.12 库,不过目前 PEP 和讨论都没啥进展,并且和 Eric 的 Per-intepreter GIL 存在一定程度上的冲突。估计 3.12 没戏

Faster Python 计划理论上 3.12 应该要达到 2.25x 的性能提升,目前看来这个版本会是个画的大饼,就看 PyCon 2023 能不能有啥新闻了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/916703

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX