经过优化,Python 脚本在 Fedora 32 上的运行速度可提高约 27%
计划于 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 导出的符号,编译器无法按预期在执行过程中传播、内联和其他优化,但相关的函数或变量会有变化。尽管该功能很有用,例如,通过调试实现重写内...