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
wuwukai007
V2EX  ›  Python

安装了 python3.10,满吃惊的

  •  2
     
  •   wuwukai007 · 2022-03-30 18:20:53 +08:00 · 7540 次点击
    这是一个创建于 972 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 居家无聊升级了 python3.10
    • 跑了下之前 pandas ,numpy 处理数据的脚本,纯计算,没有数据库网络操作
    • 之前 python3.6 耗时 12 分钟,相同代码,pandas,numpy 版本不同,其他一致
    • python 3.10 耗时 6 分钟,我惊呆了。
    18 条回复    2022-04-07 13:36:13 +08:00
    yuhangch
        1
    yuhangch  
       2022-03-30 18:21:46 +08:00
    这么神奇吗,pandas 、numpy 统一一下版本试试?
    wuwukai007
        2
    wuwukai007  
    OP
       2022-03-30 18:25:51 +08:00
    @yuhangch python3.6 装不了高版本的 pandas ,python3.10 装不了低版本的 pandas
    felixcode
        3
    felixcode  
       2022-03-30 18:27:42 +08:00 via Android
    3.6 到 3.10 ,跨了五六年了
    chenxytw
        4
    chenxytw  
       2022-03-30 18:29:30 +08:00   ❤️ 3
    pandas/numpy 本身都会做很多性能优化的。特别是 numpy. 最后一个支持 python3.6 的版本是 1.19.5 两年能做很多性能优化了。比如 1.20 开始,numpy 开启了一个 SIMD 的优化计划( NEP-0038 )。
    ClericPy
        5
    ClericPy  
       2022-03-30 21:13:17 +08:00
    不提那几个库

    3.7 比 3.6 优化还是特别明显的, 3.9 往后也比 3.7 优化很多, 每年都有人发性能对比那个图吧(各种模块的). 所以我以前的等两年追新已经变成等一年了, 哈哈
    pengtdyd
        6
    pengtdyd  
       2022-03-30 21:20:55 +08:00
    软件优化好几年,还不如多花钱买几个服务器靠谱
    tisswb
        7
    tisswb  
       2022-03-30 21:32:15 +08:00
    不说别的 async 的语法 3.6 以后一个版本比一个版本简洁好用
    weyou
        8
    weyou  
       2022-03-30 22:03:27 +08:00 via Android
    记得 3.8 版本对性能优化了一波
    pochy06
        9
    pochy06  
       2022-03-30 22:03:59 +08:00
    Python 官方有个 benchmark: https://speed.python.org/comparison/
    另外 3.9 开始用 PEG parser 了,加了一些语法糖,有一些表达比之前更简洁了。
    LeeReamond
        10
    LeeReamond  
       2022-03-30 23:11:38 +08:00   ❤️ 5
    对 py 解释器性能比较关注,自己维护了个语言性能对比项目(基于 debian 的测试)。其实 py 解释器版本 3.9 以下最快的是 3.8 ,而 3.9 因为从 LL1 换成 PEG 似乎实机性能是还下降了一丢丢,3.10 有优化可以理解。理论上如果你需要开封即用的性能的话 dropbox 的谱 pyston 的实现由于未采用 pypy 的 cffi 类似方案所以不存在 c 类库兼容性问题,想要的话你可以立刻获得二倍性能的解释器,稳定性方面我司在日志服务和一些内部管理系统上用于生产环境未遇到问题。所以理论上有 pypy 和 pyston 在前面打样,guido 所说在未来几个版本里提升 4 倍性能的说法也完全不是什么天方夜谭。

    agagega
        11
    agagega  
       2022-03-31 00:12:57 +08:00 via iPhone
    @LeeReamond
    OCaml 这个性能挺让人惊喜的啊; Swift 简直耻辱,作为和 Rust/Clang 同样背靠 LLVM 的静态编译语言性能这个样子
    LeeReamond
        12
    LeeReamond  
       2022-03-31 00:19:46 +08:00
    @agagega 确实,不过这个性能对比也是看个乐,定性分析尚可,定量图一乐,debian 列的测试项目偏向算法实现效率,跟实际生产环境还是偏离挺远的
    est
        13
    est  
       2022-03-31 10:05:46 +08:00
    3.10 有函数调用优化。py 慢其实不是慢在计算,而是传参和调用函数。。。
    ziding
        14
    ziding  
       2022-03-31 10:10:00 +08:00
    @LeeReamond pyston 这么好用么?按这个说法,我可以直接替换了,谨慎的表示怀疑
    zhlxsh
        15
    zhlxsh  
       2022-03-31 10:57:03 +08:00
    借楼问一下,你们服务器( centos )上用的新版 python 都是自己编译的吗?
    wcsjtu
        16
    wcsjtu  
       2022-03-31 11:40:13 +08:00
    在我印象中,CPython 在 3.6 以后的版本中, 对虚拟机内部的实现做了大量的修改, 比如说 FastCall 机制等。 这些确实能提高 Python 本身的性能。但是对于 C/C++实现的第三方库而言, 如果想获得性能提升, 必须主动适配这些新特性。

    总之 Python 的性能问题, 不是优化虚拟机本身就行了, 还有大量的第三方库要跟进……这个周期很长(guido 去年的说法是,未来 4 年提升 5 倍, 但我预估还会更长)。。。。。

    所以,指望官方的工作来提升 Python 业务性能, 估计得另想它法了。

    我们业务对 Python 性能比较敏感(AI 业务, 不得不用 Python), 目前是用自研的编译器,将 Python 代码编译成 native 的库, 尽可能脱离 Python 虚拟机的限制。在 benchmarkgame 中测试结果, 性能高于 PyPy; 在数值计算领域,单核性能与 numba 接近。
    LeeReamond
        17
    LeeReamond  
       2022-03-31 16:52:20 +08:00
    @ziding 我觉得比起谨慎怀疑你为什么不直接用用看呢,毕竟 ubuntu 直装连编译都不用。。。pyston 因为本身 jit 的 hacking 比较少,你去看仓库可以看到报 bug 几乎都不存在的,但是这种四两拨千斤倒也确实是效果还不错毕竟纯运算性能已经接近 2x ,而内存增加相比之下非常少。。
    ziding
        18
    ziding  
       2022-04-07 13:36:13 +08:00
    @LeeReamond 经过我的测试,发现的确是这样。大部分业务响应时间缩短了 17%左右,还在分析为啥。有 2 个业务跑不起来。后面再来详细汇报
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5310 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.