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 · 2804 次点击
    这是一个创建于 631 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最初 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   ·   实用小工具   ·   1021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:41 · PVG 03:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.