Python 3.11 稳定版发布啦,速度提升不小

2022-10-25 11:05:47 +08:00
 owtotwo

我对这个版本期待挺久的了,今天瞅了一眼官网发现 Python 3.11.0 刚好更新了!

GIL 似乎还在,速度平均提升了 25%,应该是效率提升幅度最大的一次版本更新了。

9176 次点击
所在节点    Python
47 条回复
u823tg
2022-10-26 20:24:22 +08:00
@FrankHB #40
第一点: 性能这个是微软 Faster CPython 团队的事,按你来说微软瞎搞啊提高啥性能,另外你让 cpython 团队其他方向也在弄啊。

第二 : 那这样说放在每个语言里面都适用。 那个语言有绝对稳固的生态? 我都说了爆火之后的生态基本没法动摇。Julia 科学计算比 python 好那么多大家咋不转。 有些东西都是降为打击,docker 容器化没出的话虚拟化大行其道,容器化火是因为虚拟化不努力被取代生态吗? 同纬度下生态形成了有几个被替换的案例?
第三点: 你参考第二点, 那这样 java 所谓的护城河也没有,c/c++的护城河也没有,js 的 web 也没有, 按你说的都能替换都有替代方案只不过用的人没他们得多。都是现成的解决方案。

说到底感觉你为了反驳而反驳。 人家 python 提升性能让人家提升呗。 人家提升了你还让人家别宣传淡化。 按你这每个语言发布时都能调侃下。
FrankHB
2022-10-27 07:20:11 +08:00
@u823tg 微软瞎搞也多少是传统艺能了,特别是在资源投入上……不说新语言一向资源投入拉胯,既有产品中影响最普遍最该提高性能的 cl 生成代码质量常年都占不到对面吃烂 base ABI 亏的 tier 2 支持的 GCC 的便宜,不开源经常 ICE ,还有各种兼容烂活,比如 /clr bug 导致 STL 的 pr 合不进来的。
CPython 这帮人这么“上进”往这个方向上使劲,看起来像是被人忽悠瘸了。真要性能,还不如把不跟其它更像样实现兼容的东西用 spec 当 unspecified 强行钦定了(这才是只有 CPython 的人能做得到别的备胎实现做不到的),然后架构上全面转向 RPython 之类的更靠谱的方案。当然 native intreop 前期要维持兼容肯定会多吃亏,但是兼容性包袱本就是越拖越吃亏。而要是真要那么多对性能敏感的用户,被冷落是迟早的事,加上用你 CPython 一直就是兼容性而不是指望你性能真比别人好,你继续这一苟就两方面费力不讨好。

生态问题关键就一个分水岭:有没有实体能对全局变化兜底,给整个业界买单。C/C++是不能,JS 也是基本不能,因为现有设施的依赖太离谱了,干掉一个中间环节别的看似不相干的生态都得连锁崩一大片,没谁有这本事搞事干革命突然发明出备胎,给业界兜底。光是自己不用,都至少自绝于一个主要领域,比如不想碰 JS 基本就没法玩 Web 了,不想碰 C/C++么……回家玩 51 ?——不管是找现成备胎还是自己造都不现实。要干掉这类东西,只有一点点老实挖墙脚逐步蚕食份额,长期偷梁换柱才有可能,就这样完整性还捉急。( C++替换一部分 C 用了几十年来着; WASM 还要带一坨小弟才能干掉 JS ,属实八字没一撇了。)
Python 显然没什么本事相提并论。可以说现在技术上就不存在离开 Python 就完全停摆的业务领域。尽管要故意不用导致现有解决方案失效,业界合计损失也可能是天文数字,但如果有足够长期额外利益,立即抛弃 Python 都仍然算是人力能及,还是有找备胎平替的可能性的——即使没有备胎,短时间新造也不至于动不动发现工程上不可能。反过来,要是编译器和操作系统内核之类几乎全沾上 C/C++实现的东西现在集体完蛋不给用,你拿 jio 给你搞出个能跑的 CPython 二进制?或者用其它语言新造备胎试试,要几年?还有,这样你 Python 当胶水去打算调用个啥(这不只是 CPython 的事,此时至少 Jython 和 IronPython 的运行时实现也已经完蛋了)?
注意就算没有非得立即淘汰 Python 的理由,看 Python 不爽去 Python 化的呼声多多少少是一直存在的,没在业界全面推广,就只是没有足够共识,而不像即使万众一心想搞掉 C/C++/JS (的历史包袱)都有心无力。
Java 啊,这方面还就是大号 Python 了,区别是没那么多非专业用户,惯性也更大。跟 Python 类似,看 Java 不爽的用户也多了去了,就算没本事干掉也能划清界限。现实中没 Java 能用得好好的、甚至表现得更好的设备实在太多了。
不过这方面本来就是跑题。提到这个,起因是有人提“用的最多”,而我指出绝对用户数任意多(甚至能忽略掉“最”)都不保证不被抛弃罢了。

而且你明显完全搞反了一点,我之前根本就没评论过 CPython 官方宣传如何。这次提升的就是非本机实现性能,有人还要说“对性能依赖高的包都是 C 写的”,这明显是跟官方宣传对着干吧?
u823tg
2022-10-27 07:38:44 +08:00
@FrankHB #42 你开心就好。
LindsayZhou
2022-10-27 09:22:57 +08:00
@FrankHB 基本上挺同意的,拿我自己的工作运维来说,运维有 Python 需求的原因就是容易学和适用范围广,能写 Web , 能写爬虫,还能当 bash 用,要说替代的话,肯定都有其他替代。性能是锦上添花的东西,但不那么重要。

以前公司,我本地起个 asyncio 去爬运维系统 API 都能把它打崩,不过也没关系。这群不会开发的人,花上十天半个月能接手上就行。DL 那边做算法的人是不是这样?我不是很清楚。

(在这里在这里!我就是看 JS 和 Java 都不爽的人)
wonderblank
2022-10-31 14:30:31 +08:00
从这个帖子就可以看出来,整体而言,素质是多么的差。我也不是站在道德的制高点教你们做事儿,毕竟我也不给你们发工资。我最希望的是,简中技术社区得又个社区的样子,讨论技术,而不是这么多的无意义灌水。Python 社区很大,发布新版本了,可以看看有没有新的优化,比如 asyncio 有没有加入新的后端(io_uring 等),GIL 的问题有没有缓解,以及那些库不兼容。

> 恭喜,从慢 200 倍提升到慢 150 倍了

> https://news.ycombinator.com/item?id=32002057
owtotwo
2022-11-01 15:47:47 +08:00
Python 3.11 没赶上 Ubuntu 22.04 LTS 有点可惜

不知道即将到来的 Fedora 37 是否会用上 Python 3.11.0 (测试版似乎带的是 Python 3.11 rc 版)
julyclyde
2022-11-25 08:44:29 +08:00
@LindsayZhou 加个 gevent 不就顶住了?也不需要额外写什么啊,monkey patch 一下就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/889634

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX