Faster CPython 远未达到预期 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
vicalloy
V2EX    Python

Faster CPython 远未达到预期

  •  
  •   vicalloy
    vicalloy 2023-02-16 16:31:14 +08:00 3132 次点击
    这是一个创建于 971 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    我看了帖子才知道还有这么个项目。而且他们的 ideas repository 好像只有“内容”?程序是改在他们对 cpython 的 fork 上的吗?
    vicalloy
        7
    vicalloy  
    OP
       2023-02-17 10:08:53 +08:00
    @julyclyde 这个项目的发起人就是 Python 的作者,相当于给 CPython 拉投资 。他们改动的就是官方的 CPython 。
    Python 的速度在脚本语言里也算慢的。以前说 Ruby 慢,Python 比 Ruby 还慢。
    CPython 最大的好处还是 C 扩展比较好写。特别是 PyO3 出来后,用 Rust 写扩展很舒服。
    penguinWWY
        8
    penguinWWY  
       2023-02-17 18:22:25 +08:00
    欠债太多了,得慢慢补
    其实 4 年提升 5 倍这个对比 python 的 base 不算离谱,但是每年 50%就完全是拍脑袋,为了 ppt 好看
    NoAnyLove
        9
    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 能不能有啥新闻了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3168 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 12:39 PVG 20:39 LAX 05:39 JFK 08:39
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86