主题 : 惊喜优化!Fedora 32系统Python脚本运行速度可提高27%
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605026
威望: 529007 点
无痕币: 14 WHB
贡献值: 0 点
在线时间: 62143(时)
注册时间: 2008-12-25
最后登录: 2024-04-24

0 惊喜优化!Fedora 32系统Python脚本运行速度可提高27%

管理提醒: 本帖被 hexj9 从 『Windows 10 专区』 移动到本区(2020-01-14)
计划于 4 月发布的 Fedora 32 有望给 Python 开发者带来惊喜。Fedora 项目的变更介绍页面显示,在构建 Python 解释器时,开发团队添加了-fno-semantic-interposition编译器/链接器标志(compiler/linker flag),它将会显著提升性能,当然具体的性能改进效果取决于工作负载,官方提供的数据是最多可以提升 27%。

诸如 nbody,scimark,django,光线跟踪之类的测试用例提升了 20% 至 27% 的性能,而通过 PyPerformance 测得的性能提高了 5% 至 20%。


而这给用户带来的变化是他们将不再能够使用 LD_PRELOAD 覆盖来自 libpython 的符号,不过官方认为这是提升速度的不错的折衷方案。
根据 GCC 关于语义插入(semantic interposition)标记的文档,“某些对象格式,例如 ELF,允许动态链接器插入符号。这意味着对于从 DSO 导出的符号,编译器无法按预期在执行过程中传播、内联和其他优化,但相关的函数或变量会有变化。尽管该功能很有用,例如,通过调试实现重写内存分配功能,但这在代码质量方面是昂贵的。使用-fno-semantic-interposition,编译器假定如果函数发生插入的情况,则覆盖函数将具有完全相同的语义(和副作用)。类似的,如果变量发生插入的情况,则变量的构造函数也将相同。该标志对显式声明为内联的函数无效,对弱声明的符号同样无效。”
据了解,这些改进最初是针对 Fedora 32 开发的,Fedora 项目的开发人员当时在研究静态链接 Python 的方案以提高性能。后来由于社区的反馈,他们缩小了范围,只希望优化 Fedora 32 中的 Python,并将其限制为使用-fno-semantic-interposition编译器标志来构建 Python。
知足常乐
级别: 十方秋水

UID: 23
精华: 1
发帖: 261111
威望: 117123 点
无痕币: 2324 WHB
贡献值: 0 点
在线时间: 9390(时)
注册时间: 2007-11-24
最后登录: 2024-04-24

谢谢楼主提供资源
事能知足心常乐 人到无求品自高
级别: 八片秋叶

UID: 232159
精华: 0
发帖: 45237
威望: 40907 点
无痕币: 9887 WHB
贡献值: 0 点
在线时间: 804(时)
注册时间: 2014-06-03
最后登录: 2024-04-24

谢谢总版主辛苦分享,了解一下!
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605026
威望: 529007 点
无痕币: 14 WHB
贡献值: 0 点
在线时间: 62143(时)
注册时间: 2008-12-25
最后登录: 2024-04-24

这个可以看看,了解一下。
Total 0.029716(s) query 4, Time now is:04-24 09:30, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛