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

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值