推荐学习书目
› 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

Python 终于决定要提升一下性能了

  •  1
     
  •   vicalloy ·
    vicalloy · May 14, 2021 · 12611 views
    This topic created in 2003 days ago, the information mentioned may be changed or developed.

    根据 PEP 659 , Python 3.11 预计要实现 25%~50%的性能提升。另外 Guido 在 FasterCPythonDark.pdf 中给出的性能提升预期更为激进(每年 50%性能提升,4 年性能提升 5 倍)。

    近期 Pyston 发布了基于 Python3.8 的新版本。Instagram 也发布了自己的性能改良版 Python Cinder 。似乎Python终于想起来性能这回事了。不知道最后能做到什么程度。

    51 replies  •  2021-05-17 16:30:06 +08:00
    cmos
    cmos
    May 14, 2021
    1
    聊胜于无,四舍五入等于没变化。Python 的优点向来是上手容易。

    ![等于没有]( https://imgur.com/dcoHCG1)
    LokiSharp
    LokiSharp
    May 14, 2021❤️4
    2
    终于发现自己比 Ruby 还慢了么= =
    janxin
    janxin
    May 14, 2021 via iPhone
    3
    主要是微软大爹打钱了,有大腿了!
    learningman
    learningman
    May 14, 2021 via Android❤️3
    4
    @imes 这图谁做的,Go 跑的比 C 还快就离谱。
    agagega
    agagega
    May 14, 2021 via iPhone
    5
    @LokiSharp
    我几年前测了下算 fibonacci 的时间:python2<ruby<python3,感觉很离谱
    hronro
    hronro
    May 14, 2021
    6
    @imes
    这图确实有点离谱了,Go 是出了名的为了追求编译速度几乎不做什么编译期优化的语言,居然能跑到第一?!
    这图所对应的结果是否有提供可重复验证的测试步骤?
    zjsxwc
    zjsxwc
    May 14, 2021❤️1
    7
    pypy 性能强劲,堪比 C 的性能
    hronro
    hronro
    May 14, 2021❤️1
    8
    @hronro
    看了下图右下角附有仓库地址: https://github.com/niklas-heer/speed-comparison

    去看了下他是怎么测的,结果发现 C 、Rust 、Nim 这些语言都没开编译优化,那结果自然不出所料了。

    (据说 Rust 在 Debug 模式下很可能连 Python 都跑不过)
    Leviathann
    Leviathann
    May 14, 2021 via iPhone
    9
    @imes 难怪有人说 go 招黑。。这种奇葩的 benchmark
    rust
    rust
    May 14, 2021❤️1
    10
    @learningman 更离谱的是 Rust 比 PHP 还要慢...
    一个静态编译型无 GC 语言比一个动态解释型有 GC 语言还要慢...
    felixcode
    felixcode
    PRO
    May 14, 2021 via Android
    11
    开局一张图,信口开河
    youthfire
    youthfire
    May 14, 2021 via iPhone
    12
    @zjsxwc #7 pypy 兼容性有很多问题,很多第三方库都跑不起来或者报错
    princelai
    princelai
    May 14, 2021
    13
    julia 比 python 慢那么多就离谱,jit 编译器第一次跑要预热的,估计测是的人只跑了一遍就直接写结果了吧。
    no1xsyzy
    no1xsyzy
    May 14, 2021
    14
    @imes 这图真的是……
    https://xkcd.com/1967/
    LokiSharp
    LokiSharp
    May 14, 2021
    15
    @agagega Ruby 虽然慢,但是一直在做优化。Python 3 开始一直在做负优化 Emmmm
    LeeReamond
    LeeReamond
    May 14, 2021❤️3
    16
    其实很多时候不是技术问题,反倒是社会学问题,比如社区的组织形态决定他们能贡献何种方式的代码。python 的社区组织形态导致各自为战的工作者对于语法上的小的优化和改动频繁发表意见,而对于 cpython 解释器这类的问题没什么想法,这是结论其一。

    结论其二是,其实不是社区组织形态的问题,只是有没有钱的问题。。。主流语言基本都有爹,有钱的爹对于语言影响力的推广作用是巨大的,比如你很难想象,guido 这回应该不是开窍了,只是单纯有钱了。。dropbox 虽然不是 flag 那种级别的公司,但也能算个二爹吧。
    karatsuba
    karatsuba
    May 14, 2021
    17
    语法糖搞多了被人诟病了,Guido 这不是打自己脸吗
    est
    est
    May 14, 2021
    18
    感谢微软!
    leewi9coder
    leewi9coder
    May 14, 2021
    19
    感谢微软!
    WilliamYang
    WilliamYang
    May 14, 2021❤️1
    20
    用了 Python 好多年,已经改用 go 了,真的受不了这几年 CPython 一直就是加语法糖,很高兴有 Pyston 这类优化性能又尽量兼容的解释器出现
    efaun
    efaun
    May 14, 2021❤️3
    21
    我认为选择 python 就是为的方便快捷和数据分析,正经追求性能的人谁会用 python 呀!
    leven87
    leven87
    May 14, 2021
    22
    @efaun 知乎和豆瓣都是 python 写的,instagram,netflix 也是 python 写的。 语言级别的性能没那么重要
    vicalloy
    vicalloy
    OP
    May 14, 2021❤️2
    23
    @leven87 性能不是决定一个项目成功的关键,但是性能提升还是有必要的。不然 Instagram 也不会去整各 Cinder 出来。Dropbox 用 Python,于是整了各 Pyston 出来。
    SlipStupig
    SlipStupig
    May 14, 2021
    24
    @efaun 你目前使用的这个论坛也是 python 写的。。
    TypeError
    TypeError
    May 14, 2021
    25
    有钱的是大爷,感谢微软
    ipwx
    ipwx
    May 14, 2021
    26
    其实 Python 做数据分析,性能绰绰有余了。。。

    你说要性能?我看了看这两个月写的 2 万多行 C++
    princelai
    princelai
    May 14, 2021❤️1
    27
    我给你们贴张靠谱点的图,数据来源是 https://benchmarksgame-team.pages.debian.net/benchmarksgame

    tabris17
    tabris17
    May 14, 2021
    28
    @princelai PHP 很厉害了嘛,Python 竟然连 Ruby 都不如,噗噗
    rahuahua
    rahuahua
    May 14, 2021
    29
    @leven87 计算机可不是只能做 web 服务器,就算是 web 服务你用性能更好的语言也更多呀
    fengsien1999
    fengsien1999
    May 14, 2021
    30
    @janxin 微软是给 Guido 个人的还是?给了多少?
    hronro
    hronro
    May 14, 2021
    31
    @princelai
    benchmarksgame 官网里似乎没有这张图?请问这张图的来源是哪里?
    princelai
    princelai
    May 14, 2021
    32
    @hronro #31 我定期爬数据自己做图,matplotlib+seaborn,加权指的是速度+内存使用排名加权
    princelai
    princelai
    May 14, 2021❤️1
    33
    @tabris17 #28 他们测试都是用纯语言去跑,但是实际上 python 的数据分析都是 pandas,numpy,sklearn,scipy 这些,都是经过 C,fortran 优化过的底层,所以不用来跑分,而是实际使用的话是很快的。
    LeeReamond
    LeeReamond
    May 14, 2021 via Android
    34
    @princelai 提个意见,应该搞对数坐标,更符合逻辑
    princelai
    princelai
    May 14, 2021
    35
    @LeeReamond #34 底下那个时间(秒)其实应该叫做相对时间(倍),如果搞成对数坐标,bar 显示更好看,但是倍数关系会被破坏,变得不直观了,看的人需要反算 exp 推出倍数关系
    szuwl
    szuwl
    May 14, 2021
    36
    @princelai Kotlin 不配拥有姓名
    CodeDrift
    CodeDrift
    May 14, 2021
    37
    @zjsxwc #7 测试了一下 pypy 的 md5 比 python3 慢挺多的。都是 3.7 版本
    Evilk
    Evilk
    May 14, 2021
    38
    PHP8 + jit.还是很不错的
    charlie21
    charlie21
    May 14, 2021 via iPhone
    39
    python 圈子还是有点意思的,一个个的
    harwck
    harwck
    May 14, 2021 via Android
    40
    Python 也就图一乐
    simple2025
    simple2025
    May 14, 2021
    41
    为什么 ruby 的 jit 是成功的? 减少了特性?还是不兼容 c 扩展?
    simple2025
    simple2025
    May 14, 2021
    42
    我只希望 python 能有 php8 的运行速度就可以了
    learningman
    learningman
    May 14, 2021
    43
    @Anybfans #37 你测 md5 是在拿 pypy 和 C 比。。。
    levelworm
    levelworm
    May 14, 2021
    44
    @princelai 比 Perl 快够了。。。
    chaowang
    chaowang
    May 14, 2021
    45
    用 python 谁会在乎性能呢,不都是因为生态还有上手容易吗
    cabbage
    cabbage
    May 15, 2021 via Android
    46
    纯语言性能 Python 确实绝对处劣势。不过实际上 py 现在不都当胶水用的嘛,比如大数据用 py 的,多数情况只是在用各种框架各种 binding 而已,pandas,numpy,numba,pyarrow,pyspark… 但是说回来总算正视性能问题了肯定是好事
    Drahcir
    Drahcir
    May 15, 2021
    47
    然而 GIL 还在
    zxCoder
    zxCoder
    May 15, 2021
    48
    @princelai c# yyds
    zzzaaasss
    zzzaaasss
    May 15, 2021
    49
    性能的重要性越来越低了
    CodeDrift
    CodeDrift
    May 16, 2021
    50
    @learningman #43 看了 pypy 有个更新说是 md5 效率大幅提升。。。
    yy77
    yy77
    May 17, 2021
    51
    python 最强的性能提升方法难道不是调用外部的 c++函数嘛。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1614 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 02:13 · PVG 10:13 · LAX 18:13 · JFK 21:13
    ♥ Do have faith in what you're doing.