大茂名网

 找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 163|回复: 0

[【编导】] 分享华为开发者将Linux核心内核函数速度提升715倍 2023/2/2 13:31:27

[复制链接]

2万

主题

2万

帖子

9万

积分

钻石元老

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
98065
发表于 2023-2-2 13:31 | 显示全部楼层 |阅读模式

马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?用户注册

x

华为开发者贡献 L 内核补丁,将核心内核函数速度提升 715 倍Linux命令大全的相关资讯可以到我们网站了解一下,从专业角度出发为您解答相关问题,给您优质的服务!



从合并的注释可知,贡献此补丁的维护者 Z L 来自华为,他将 __ () 的平均查找性能提高了 715 倍,从而使内核里面旧现的时间复杂度从 O () 升级到 O ( ()),大幅减少查找时间,同时还保留了  上旧的现支持。

__ () 函数用于根据称查找符号的地址,并可用于查找内核符号表中的任何符号。



Z L 曾在较早的补丁中描述了 __ () 的化思路:目前,要搜索一个符号,我们需要将 '_' 中的符号一个一个展开,然后使用展开后的字符串进行比较。这种算法的时间复杂度是 O ()。

如果我们像地址一样按升序对称进行排序,则可以使用二分查找。这种算法的时间复杂度是 O ( ())。为了不改变 “” 的现,表 _ [] 仍然按照升序与地址一一对应存储。添加数组 ___ [],以排序后的  序号为索引,对应的内容为排序后的地址序号。例如:假设 NX 在数组 ___ [] 中的索引为 '',___ [] 的内容为 '',则 NX 对应的地址为 _ []。_ [] 中的偏移量是 __ ()。

请注意,使用此方法内存使用量将增加 (4 * __) 字节,接下来的两个补丁将减少 (1 * __) 字节并正确处理 CONFIG_LTO_CLANG= 的情况。

性能测试结果:(86)
B:
=234, =10364402, =5206926
=267, =11168517, =5207587
A:
=1016, =90894, =7272
=1014, =93470, =7293

__ () 的平均查找性能提高了 715 倍。因此,该补丁带来的仅有缺点是将内存占用量增加 3 * __。L 62 的模块代码还包含一个小的启动化,将启动时间缩短了大约 30 毫秒。
爱上大茂名,喜当大猫友,吃喝玩乐事,天天乐开怀!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|客服:0668-2886677QQ:75281068|大茂微博|小黑屋|手机版|Archiver|大茂名网 ( 粤ICP备18149867号 )茂名市大茂科技有限公司 版权所有 

GMT+8, 2025-2-12 04:29 , Processed in 0.091518 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表