经过优化,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 导出的符号,编译器无法按预期在执行过程中传播、内联和其他优化,但相关的函数或变量会有变化。尽管该功能很有用,例如,通过调试实现重写内存分配功能,但这在代码质量方面是昂贵的。使用-fno-semantic-interposition
,编译器假定如果函数发生插入的情况,则覆盖函数将具有完全相同的语义(和副作用)。类似的,如果变量发生插入的情况,则变量的构造函数也将相同。该标志对显式声明为内联的函数无效,对弱声明的符号同样无效。”
据了解,这些改进最初是针对 Fedora 32 开发的,Fedora 项目的开发人员当时在研究静态链接 Python 的方案以提高性能。后来由于社区的反馈,他们缩小了范围,只希望优化 Fedora 32 中的 Python,并将其限制为使用-fno-semantic-interposition
编译器标志来构建 Python。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linus Tovalds,你根本不懂 ZFS
上周 Linus Torvalds 在某个论坛上讨论关于内核的相关问题时,提到了 ZFS on Linux,他表明了自己的态度,在 Oracle 对 ZFS 的代码进行重新授权以使其能更友好地被引入到 Linux 内核主线之前,他不会推荐使用ZFS,同时,即便抛开许可证的原因,Linus 也觉得 ZFS 的综合性能并不特别强。 本周,FOSS 作者Jim Salter针对 Linus 影响广泛的言论进行了回应,他觉得 Linus 对于 ZFS on Linux 不了解,表示“Linus 应当避免对自己不熟悉的项目发表权威性的言论”。 Getty Images 关于 ZFS on Linux 许可证方面的问题,要追溯到 2019 年 1 月,当时内核开发人员 Greg Kroah-Hartman决定禁止将某些内核符号导出到非 GPL 可加载内核模块,这直接限制了 ZFS(一度引起ZFS On Linux 在 Linux Kernel 5.0 上陷入困境)。 内核符号导出将有关内核状态的内部信息公开给可加载的内核模块,比如_kernel_fpu_跟踪处理器浮点单元的状态,无法访问该符号,Z...
- 下一篇
微软发现恶意 npm 软件包,可从 UNIX 系统窃取数据
Microsoft 的漏洞研究团队在 npm(Node Package Manager) 存储库中发现了一个恶意JavaScript 程序包,可从 UNIX 系统窃取敏感信息。 该恶意软件包名为 1337qq-js,于 2019 年 12 月 30 日上传到 npm 存储库中。目前,该恶意软件包已被npm 的安全团队删除。在此之前,该软件包至少被下载了 32 次。 根据 npm 安全团队的分析,该软件包通过安装脚本来泄漏敏感信息,并且仅针对 UNIX 系统。 它收集的数据类型包括: 环境变量 运行过程 / etc / hosts 优名 npmrc文件 其中,窃取环境变量则被视为重大安全漏洞。npm 团队建议所有在其项目中下载或使用此 JavaScript 程序包的开发人员从其系统中删除该程序包,并轮换使用任何compromised的凭据。 事实上,这是恶意软件包第六次被放入 npm 存储库索引,此前的五次分别为: 2019年 6月-黑客将电子本地通知库进行后门操作,以插入到达 Agama 加密货币钱包的恶意代码。 2018年11月-一名黑客借壳了the event-stream npm...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池