Linux 6.8落地常见的基于路径的搜索的诱人优化


以一
以一 2024-01-10 22:49:02 65905 赞同 0 反对 0
分类: 资源 标签: 统信UOS
对于通过路径名执行程序的execve()系统调用,Linux6.8内核将进行新的优化,以“显著”加速路径搜索。 的 执行更新对于Linux6.8,引入了新的快速失败检查来加速基于execve的路径搜索。 Linux开发人员Josh Triplett编写了这个优化并评论了补丁:


对于通过路径名执行程序的execve()系统调用,Linux6.8内核将进行新的优化,以“显著”加速路径搜索。

的 执行更新对于Linux6.8,引入了新的快速失败检查来加速基于execve的路径搜索。

Linux开发人员Josh Triplett编写了这个优化并评论了补丁:

“目前,execve分配mm并在检查路径是否存在之前解析argv和envp。但是,通常情况下,$PATH搜索可能在一次成功之前多次调用EXEC失败。在执行更昂贵的操作之前,执行文件名查找的目的是返回ENOENT。

..。

为了测量性能,我运行了2000个fork和execvpe调用,其中一个七元素的PATH中的文件位于第七个目录中(常见情况的代表是/usr/bin是我的$PATH上的第七个目录),以及2000个fork和execve调用,其中一个绝对路径指向现有的二进制文件。我记录了每一个的最短时间,以消除上下文切换和类似的噪音。

没有快速通道:

叉子/执行器:49876 ns

叉子/execve:32773 ns

使用快速路径:

叉子/叉子:36890 ns

fork/execve:32069ns

对于成功的EXEC来说,额外查找的成本似乎微不足道,但它为路径搜索提供了26%的改进

加快了六个失败的高管。”

对于基于execve的PATH搜索来说,这是一个相当不错的胜利,速度快了26%,特别是对于这是一个常见的操作。在该补丁中提出,shell脚本倾向于使用stat()来检查PATH中的文件,而GNU C库(glibc)和Musl libc,Python,Perl等倾向于使用基于execve的方法,从而受益于这种内核优化。

Linux 6.8落地常见的基于路径的搜索的诱人优化

Nothing beats a small patch for a nice performance win.

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
以一L0
粉丝 0 资源 1143 + 关注 私信
最近热门资源
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD  43
统信uos安装mysql的实例参考  32
分享解决宏碁电脑关机时自动重启的方法  32
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。  30
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作  29
统信uosboot区分未挂载导致更新备份失败  28
格之格打印机dp3300系列国产系统uos打印机驱动选择  26
以openkylin为例编译安装内核  24
最近下载排行榜
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD 0
统信uos安装mysql的实例参考 0
分享解决宏碁电脑关机时自动重启的方法 0
在银河麒麟高级服务器操作系统V10SP3中,需要将默认shell类型修改为csh。 0
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作 0
统信uosboot区分未挂载导致更新备份失败 0
格之格打印机dp3300系列国产系统uos打印机驱动选择 0
以openkylin为例编译安装内核 0
作者收入月榜
1

prtyaa 收益400.53元

2

zlj141319 收益237.46元

3

哆啦漫漫喵 收益231.42元

4

IT-feng 收益219.81元

5

1843880570 收益214.2元

6

风晓 收益208.24元

7

777 收益173.07元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!