编译 | 禾木木
出品 | CSDN(ID:csdnnews)
开发者 Thomas Weißschuh 在近日发布了一组八个补丁,旨在减少编译 Linux 内核时的最大内存使用量。对于在内存受限的发行版中构建内核的开发者来说,新补丁减少了 Swap 和版本创建时间。
Weißschuh 近日发布的补丁集侧重于在编译 Linux 内核时可以减少最大内存使用量。尤其是,使用 objtool 处理 vmlinux.o 对象时的内存使用情况,这也是内核构建过程中最耗费内存的一个步骤。
安装新的补丁集后,在处理 vmlinux.o 时,循环中的 malloc()相关函数会传递给循环外的 calloc()函数,从而将峰值内存使用量减少 3.7%;在通过 Thomas 编译内核时减少结构重定位吼,将内存使用量减少 3.8%;并通过优化结构符号的布局将内存使用量减少 0.5%。
此外,补丁集还进行了其他方面的优化,只是优化程度并不明显。
简而言之,正在审查的这个补丁集应该有助于减少编译 Linux 内核时的内存使用峰值,从而帮助编译 Linux 内核。
除了发布新的补丁集外,小编了解到 Linux 6.3 将进一步改进可重启序列 (RSEQ) 以提高计算性能。
Linux 内核在几年前已经合并了可重启序列(RSEQ),GNU C 库已经使用 RSEQ 对每个 CPU 数据执行更快的用户空间操作。RSEQ 将在明年发布的 Linux 6.3 中会进一步改进。通过增加每个 CPU 计数器、修改每个 CPU 旋转锁、读取/写入每个 CPU 环形缓冲区等来避免原子操作(线程调度机制不会中断的操作),RSEQ 可以显著优化性能,从而提供出色的基准测试结果
无论是新发布的补丁集,还是说即将改进的序列都将进一步提升性能。
参考链接:
https://www.techgoing.com/developers-release-patch-set-to-reduce-maximum-memory-usage-when-compiling-the-linux-kernel/
https://www.phoronix.com/news/Linux-Kernel-Build-Less-RAM
https://www.techgoing.com/linux-6-3-will-further-improve-the-restartable-sequence-rseq-to-improve-computing-performance/
领取专属 10元无门槛券
私享最新 技术干货