微软探索 LTO+PGO 以优化 Linux 内核
ahcoder 2025-04-07 11:21 4 浏览
当越来越多的软件厂商采用链接时优化(LTO, link-time optimizations)和配置文件引导优化(PGO, profile-guided optimizations)来利用编译器榨取性能的时候,微软工程师正在为自用的 Linux 内核探索 LTO+PGO,以实现更好的 Linux 性能。
在 Linux 内核上使用链接时优化并不是新概念,过去已有多家厂商发布了针对 Linux 内核的 LTO 补丁,但通常不会带来很大的变化。此前 Linus Torvalds 和其他人一直对支持 LTO 的 Linux 内核不看好,部分原因是过去 GCC 的 LTO 状况不佳。
但如今随着现代 GCC 编译器(和 Clang)的发展,LTO 也逐渐变得更好,像 Fedora 在打包他们的发行版安装包时都会默认使用 LTO,也有像 Clear Linux 这样的公司通过使用 AutoFDO(基于程序性能分析工具的反馈式编译优化)来进一步提升其发行版的性能。
相对而言,在 Linux 内核上使用配置文件引导优化的案例则比较鲜见。由于配置文件引导优化完全依赖于配置文件,反馈给编译器以帮助其进行优化启发式处理。因此,对于实际使用情况而言,配置文件的准确性至关重要。
考虑到在 Linux 上看到的工作负载非常多样化,以及各种不同的硬件和驱动程序,要生成对 PGO 有用的、能被广泛使用的、能帮助绝大多数用户的配置文件是一项艰巨的任务。
因此,对于 Linux 内核中的 PGO,更多的是针对个人用户/组织,他们可以采用 PGO,并根据自身的实际情况进行调整。
微软软件工程经理 Ian Bearman 在本周举办的 Linux Plumbers 大会上介绍了他们对 Linux 内核的配置文件引导优化的探索。
他们对 PGO 的兴趣源于对 Linux 性能的“内部客户要求”。不过话又说回来,微软致力于优化 Linux 性能现在看来并不是什么奇怪的事情,另一位微软工程师曾是推动 FSGSBASE 补丁开发的贡献者,最后还被合并进 Linux Kernel 5.9。
Redis 是他们一直展示的在内核探索使用 PGO 并获益的公开案例之一。
微软会继续探索用于 Linux 内核的 PGO,有趣的是,人们发现 Windows 确实广泛使用了 LTO + PGO。据说在 Windows 实例中,他们看到这些编译器优化的性能提升了 5~20%,想必是使用了他们自己的 MSVC 编译器。
相关推荐
- Linux 6.15将更新媒体子系统:高通Iris驱动首次亮相
-
IT之家3月24日消息,科技媒体phoronix昨日(3月23日)发布博文,报道称Linux6.15内核将于本周启动合并窗口,首批提交的PullRequest请求之一,就...
- Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新
-
IT之家4月18日消息,科技媒体linuxiac昨日(4月17日)发布博文,报道称代号为PluckyPuffin的Ubuntu25.04发行版正式上线,搭载最新Linu...
- WordPress 6.8 版本发布:聚焦性能升级,代号“Cecil”
-
WordPress6.8版本发布:聚焦性能升级,代号“Cecil”全球最受欢迎的内容管理系统(CMS)WordPress正式推出最新版本6.8,代号“塞西尔”(Cecil),以此致敬传奇钢琴家...
- Linus Torvalds接受微软Hyper-V升级 下一代Linux启动会更快
-
虽然Windows的粉丝和Linux的粉丝经常喜欢进行激烈的键盘大战,但操作系统的制造商们自己也了解彼此的优缺点。毫无疑问,微软也明白这一点,事实上,它甚至鼓励用户尝试Linux,尽管是使用...
- Debian 12发布:Linux内核升级6.1(debian更新内核)
-
IT之家6月11日消息,Debian是最古老的GNU/Linux发行版之一,也是许多其他基于Linux的操作系统的基础,包括Ubuntu、Kali、MX和树莓派OS等。这...
- Linux Mint预告新功能:升级Nemo搜索、LMDE 7支持OEM安装
-
IT之家4月10日消息,LinuxMint发布了最新月度简讯,宣布增强Nemo文件管理器的文件搜索功能、Cinnamon桌面环境开始支持Wayland、LMDE7(LinuxM...
- Linux 6.2合并大量网络系统更新:推进Wi-Fi 7和800 Gbps网络
-
IT之家12月15日消息,Linux6.2合并窗口期内已经确认将会合并大量网络子系统更新。和以往版本相同,Linux6.2内核更新周期在网络功能上有大量的改进,更多的细节可以访问这条...
- Linux内核升级实践指南(linux内核怎么升级)
-
Linux内核升级是一个需要谨慎操作的过程,但掌握正确方法后可以显著提升系统性能、安全性或硬件兼容性。以下是一份详细的实践指南,涵盖主流方法及注意事项:一、准备工作查看当前内核版本bashuname...
- Linux又将迎来大版本更新 5.20版可能会被称为Linux 6.0
-
如果你错过了昨天Linux5.19的发布公告,那么这一消息需要回顾一下:被称为Linux5.20的开发中的内核很可能会被称为Linux6.0。根据LinusTorvalds对现代版本的划分,L...
- 周六的娱乐就是安装一台OracleLinux虚拟机(一)
-
每个人有每个人的娱乐方式。老父亲可能喜欢摆弄一些机械工具修修补补。我趁着周六安装一套OracleLinux,寓学于乐。在oracle网站上,下载VirtualBox,现在最新版本是7.0.8。在安装过...
- Linux系统下Gaussian 16的安装(linux系统如何安装新软件)
-
Gaussian是目前使用最多的量子化学计算软件,当前最新的版本为Gaussian16C.01。理论上来说Gaussian并不需要安装,因为高斯一般是不出售源代码的,只有二进制文件,以Gaussi...
- 「Linux基础」VMWare虚拟机安装CentOS后配置静态ip
-
在VMWare中安装本地虚拟机CentOS7操作系统,动态IP地址会经常变化,不便于管理与实验。为了便于实验,考虑设置成静态IP地址,目标是本地局域网可以通过NAT网关互相访问,且能连接互联网。由于是...
- Win10虚拟机,Hyper-V安装CentOS,一次成功
-
打开控制面板,选择程序选择启用或关闭Windows功能选中Hyper-V下所有的组件。提示我们需要,重启计算机,保存我们的文件,之后点击“立即重新启动”选择开始菜单,输入Hy,就可以打开虚拟机管理器了...
- 如何在Windows 10中的Hyper-V虚拟机上安装CentOS Linux
-
注意双重引导的一种可行且相当不错的替代方法是在虚拟机上安装各种操作系统。Microsoft正式支持CentOS作为Hyper-V的来宾OS,并且在安装时可以很好地集成。自CentOS6.4版以来,用...
- 安装Linux虚拟机的5个理由,以及不安装的5个原因
-
虚拟机(VM)允许你在不永久更改计算机的情况下探索Linux。如果你对Linux很好奇,但犹豫是否要尝试,VM提供了一个安全、灵活的解决方案。如果这是你第一次听说虚拟机,虚拟机就像“计算机中的计算机”...
- 一周热门
- 最近发表
-
- Linux 6.15将更新媒体子系统:高通Iris驱动首次亮相
- Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新
- WordPress 6.8 版本发布:聚焦性能升级,代号“Cecil”
- Linus Torvalds接受微软Hyper-V升级 下一代Linux启动会更快
- Debian 12发布:Linux内核升级6.1(debian更新内核)
- Linux Mint预告新功能:升级Nemo搜索、LMDE 7支持OEM安装
- Linux 6.2合并大量网络系统更新:推进Wi-Fi 7和800 Gbps网络
- Linux内核升级实践指南(linux内核怎么升级)
- Linux又将迎来大版本更新 5.20版可能会被称为Linux 6.0
- 周六的娱乐就是安装一台OracleLinux虚拟机(一)
- 标签列表
-
- linux 远程 (37)
- u盘 linux (32)
- linux 登录 (34)
- linux 路径 (33)
- linux 文件命令 (35)
- linux 是什么 (35)
- linux 界面 (34)
- 查看文件 linux (35)
- linux 语言 (33)
- linux代码 (32)
- linux 查看命令 (33)
- 关闭linux (34)
- root linux (33)
- 删除文件 linux (35)
- linux 主机 (34)
- linux与 (33)
- linux 函数 (35)
- linux .ssh (35)
- cpu linux (35)
- 查看linux 系统 (32)
- linux 防火墙 (33)
- linux 手机 (32)
- linux 镜像 (34)
- linux mac (32)
- linux ip地址 (34)