手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

通过优化,Python在Fedora 32上的运行速度可以提高27%

[日期:2020-01-12] 来源:Linux公社  作者:醉落红尘 [字体: ]

Python脚本的运行速度可能明显快于4月发布的Fedora 32。

最初是为Fedora 32开发的,开发人员正在研究静态链接Python以提高性能。但是由于反馈,他们缩小了范围,因为Fedora 32中的Python优化将其限制为使用-fno-semantic-interposition编译器标志来构建Python。

根据GCC关于语义插入标记的文档,“某些对象格式,例如ELF,允许动态链接器插入符号。这意味着对于从DSO导出的符号,编译器无法在预期中执行过程间传播,内联和其他优化尽管该功能很有用,例如,通过调试实现重写内存分配功能,但在代码质量方面是昂贵的。使用-fno-semantic-interposition,编译器假定如果函数发生插入,则覆盖函数将具有完全相同的语义(和副作用)。类似地,如果变量发生插入,则变量的构造函数也将相同。该标志对显式声明为内联的函数无效(在此位置,标记无效)。绝不允许插入来更改语义)和明确声明为弱的符号。”

Fedora开发人员发现,使用-fno-semantic-interposition构建Python可以提高高达27%的性能,具体取决于工作负载。诸如nbody,scimark,django,光线跟踪之类的测试用例在20%至27%的范围内提高了性能,而通过PyPerformance测得的性能提高了5%至20%的范围。

没有语义插入的更改的唯一次要缺点是LD_PRELOAD不能与Python一起使用以覆盖符号,但这不会影响很多符号。

有关此已完成更改的更多详细信息,请访问Fedora Wiki

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2020-01/161990.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款