- 居家无聊升级了 python3.10
- 跑了下之前 pandas ,numpy 处理数据的脚本,纯计算,没有数据库网络操作
- 之前 python3.6 耗时 12 分钟,相同代码,pandas,numpy 版本不同,其他一致
- python 3.10 耗时 6 分钟,我惊呆了。
|
yuhangchMar 30, 2022
1
这么神奇吗,pandas 、numpy 统一一下版本试试?
|
|
2
@yuhangch python3.6 装不了高版本的 pandas ,python3.10 装不了低版本的 pandas
|
|
3
3.6 到 3.10 ,跨了五六年了
|
|
4
pandas/numpy 本身都会做很多性能优化的。特别是 numpy. 最后一个支持 python3.6 的版本是 1.19.5 两年能做很多性能优化了。比如 1.20 开始,numpy 开启了一个 SIMD 的优化计划( NEP-0038 )。
|
|
ClericPyMar 30, 2022
5
不提那几个库
3.7 比 3.6 优化还是特别明显的, 3.9 往后也比 3.7 优化很多, 每年都有人发性能对比那个图吧(各种模块的). 所以我以前的等两年追新已经变成等一年了, 哈哈 |
|
pengtdydMar 30, 2022
6
软件优化好几年,还不如多花钱买几个服务器靠谱
|
|
tisswbMar 30, 2022
7
不说别的 async 的语法 3.6 以后一个版本比一个版本简洁好用
|
|
weyouMar 30, 2022 via Android
8
记得 3.8 版本对性能优化了一波
|
|
pochy06Mar 30, 2022
9
Python 官方有个 benchmark: https://speed.python.org/comparison/
另外 3.9 开始用 PEG parser 了,加了一些语法糖,有一些表达比之前更简洁了。 |
|
agagegaMar 31, 2022 via iPhone
11
@LeeReamond
OCaml 这个性能挺让人惊喜的啊; Swift 简直耻辱,作为和 Rust/Clang 同样背靠 LLVM 的静态编译语言性能这个样子 |
|
LeeReamondMar 31, 2022
12
@agagega 确实,不过这个性能对比也是看个乐,定性分析尚可,定量图一乐,debian 列的测试项目偏向算法实现效率,跟实际生产环境还是偏离挺远的
|
|
estMar 31, 2022
13
3.10 有函数调用优化。py 慢其实不是慢在计算,而是传参和调用函数。。。
|
|
zidingMar 31, 2022
14
@LeeReamond pyston 这么好用么?按这个说法,我可以直接替换了,谨慎的表示怀疑
|
|
zhlxshMar 31, 2022
15
借楼问一下,你们服务器( centos )上用的新版 python 都是自己编译的吗?
|
|
wcsjtuMar 31, 2022
16
在我印象中,CPython 在 3.6 以后的版本中, 对虚拟机内部的实现做了大量的修改, 比如说 FastCall 机制等。 这些确实能提高 Python 本身的性能。但是对于 C/C++实现的第三方库而言, 如果想获得性能提升, 必须主动适配这些新特性。
总之 Python 的性能问题, 不是优化虚拟机本身就行了, 还有大量的第三方库要跟进……这个周期很长(guido 去年的说法是,未来 4 年提升 5 倍, 但我预估还会更长)。。。。。 所以,指望官方的工作来提升 Python 业务性能, 估计得另想它法了。 我们业务对 Python 性能比较敏感(AI 业务, 不得不用 Python), 目前是用自研的编译器,将 Python 代码编译成 native 的库, 尽可能脱离 Python 虚拟机的限制。在 benchmarkgame 中测试结果, 性能高于 PyPy; 在数值计算领域,单核性能与 numba 接近。 |
|
LeeReamondMar 31, 2022
17
@ziding 我觉得比起谨慎怀疑你为什么不直接用用看呢,毕竟 ubuntu 直装连编译都不用。。。pyston 因为本身 jit 的 hacking 比较少,你去看仓库可以看到报 bug 几乎都不存在的,但是这种四两拨千斤倒也确实是效果还不错毕竟纯运算性能已经接近 2x ,而内存增加相比之下非常少。。
|
|
zidingApr 7, 2022
18
@LeeReamond 经过我的测试,发现的确是这样。大部分业务响应时间缩短了 17%左右,还在分析为啥。有 2 个业务跑不起来。后面再来详细汇报
|