点击“开发者技术前线”,选择“星标”

让一部分开发者看到未来

IT之家 12 月 14 日消息,Linux 6.2 今日合并了来自华为郑磊(Zhen Lei,音译)的代码,将核心内核功能的速度提高了 715 倍。

在合并代码模块介绍中写道:“得益于 Zhen Lei 的代码,Tux(Linux 的吉祥物,这里指 Linux)在 kallsyms_lookup_name () 平均查找性能提高了 715 倍,将我们的旧实现从 O (n) 升级到 O (log (n)),同时还保留了 / proc / kallsyms 上的旧实现支持”。

IT之家了解到,kallsyms_lookup_name () 函数用于根据一个符号的名称查询其地址,并可用于内核符号表内任何符号的查询。

华为的 Zhen Lei 在之前的补丁贴中描述了对 kallsyms_lookup_name 的优化:

目前,为了搜索一个符号,我们需要将 'kallsyms_names' 中的符号逐一展开,然后使用展开后的字符串进行比较。这是 O (n)。

如果我们像地址一样将名字按升序排序,我们也可以使用二进制搜索。而这就是 O (log (n))。

为了不改变“/proc/ kallsyms”的实现,表 kallsyms_names [] 仍然以升序与地址一一对应的方式存储。

增加数组 kallsyms_seqs_of_names [],它以排序后的名字的序列号为索引,对应的内容是排序后的地址的序列号。

例如,假设 NameX 在数组 kallsyms_seqs_of_names [] 中的索引是 'i',kallsyms_seqs_of_names [i] 的内容是 'k',那么 NameX 的对应地址是 kallsyms_addresses [k]。kallsyms_names [] 中的偏移是 get_symbol_offset (k)。

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

优化前:

min=234, max=10364402, avg=5206926

min=267, max=11168517, avg=5207587

优化后:

min=1016, max=90894, avg=7272

min=1014, max=93470, avg=7293

kallsyms_lookup_name () 的平均查询性能提高了 715 倍。

于是某社交App上开始 传言 ,系统代码其中与不少OD(外包)参与开发,某部要求的OD同学转正。

脉脉社区一直有学技术就得选OD的言论, 互联网有句话: “先有华为后有天,鸿蒙代码OD编”。

— 完 —
点这里												

平均查找性能提高了 715 倍,Linux 6.2 合并华为贡献的代码,华为OD火到国外!...相关推荐

  1. Raspberry Pi 3 计算模块,CPU性能提高了十倍

    树莓派(Raspberry Pi)正式推出全新一代计算模块(Compute Module 3,以下简称CM3),与树莓派3采用的是同款处理器. Raspberry Pi 3 计算模块与树莓派3一样搭载 ...

  2. 工程之道 | CPU推理性能提高数十倍,MegEngine计算图、MatMul优化解析

    本文转载自旷视研究院. 背景及引言 在深度学习大规模落地边缘端场景的今天,如何最大程度降本增效,是企业与开发者共同关注的话题.其中,模型的训练与推理是两个关键环节. 天元(MegEngine)深度学习 ...

  3. Linux 6.2 最新合并情况:拓展 ArmSoc 支持,华为代码加速核心功能 715 倍!

    整理 | 王启隆 作为送给全球开发者的圣诞礼物,Linux 在前日发布了 Linux 6.1 内核的稳定版,并开启了 Linux 6.2 的合并窗口.这次更新不仅为广大用户带来了不少新功能与改进,还让 ...

  4. Linux 6.2:华为代码加速核心功能 715 倍!

    整理 | 王启隆 出品 | CSDN(ID:CSDNnews) 作为送给全球开发者的圣诞礼物,Linux 在前日发布了 Linux 6.1 内核的稳定版,并开启了 Linux 6.2 的合并窗口.这次 ...

  5. 华为开发者贡献 Linux 内核补丁,将核心内核函数速度提升 715 倍

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! Linux 6.2 近日合并了一个重要补丁,该补丁能够将一个核心内核函数速度提升 715 倍. 从合并的注释可知, ...

  6. Redis流水线性能提高

    我们希望在没有任何附加条件的场景下去使用队列批量执行一系列的命令,从而提高系统性能,这就是 Redis 的流水线(pipelined)技术.而现实中 Redis 执行读/写速度十分快,而系统的瓶颈往往 ...

  7. MongoDB数据库查询性能提高40倍

    MongoDB数据库查询性能提高40倍 大家在使用 MongoDB 的时候有没有碰到过性能问题呢?下面这篇文章主要给大家分享了MongoDB数据库查询性能提高40倍的经历,需要的朋友可以参考借鉴,下面 ...

  8. mongodb 搜索速度_MongoDB数据库查询性能提高40倍的经历分享

    前言 数据库性能对软件整体性能有着至关重要的影响,本文给大家分享了一次MongoDB数据库查询性能提高40倍的经历,感兴趣的朋友们可以参考学习. 背景说明 1.数据库:MongoDB 2.数据集: A ...

  9. 记一次Java调优,性能提高20倍

    记一次Java调优,性能提高20倍 背景 最近我们接入网关OpenAccess服务增加了流量监控(阿里的Sentinel),进入测试环境,用20个线程并发测试后发现性能问题很严重,响应时间到达了100 ...

最新文章

  1. 7-12 两个数的简单计算器 (C语言)
  2. 谈谈HTML5中的history.pushSate方法,弥补ajax导致浏览器前进后退无效的问题
  3. YaoCCAD软件中设置坐标原点
  4. 2680 Problem F: Coin Game
  5. 基于arm-linux的防火墙设计,基于ARM9的Linux驱动开发及防火墙设计
  6. ARIMA时间序列分析
  7. 专家系统实例及其骨架系统
  8. svchost.exe占网速解决方法
  9. /etc/ssh/ssh_config line 59: Unsupported option “gssapiauthentication“
  10. openpyxl中的load_workbook()函数
  11. Python开发一个炸金花小游戏,注意别玩上瘾了
  12. 模拟163邮箱登录钓鱼PHP源码,分享一个curl模拟网易163邮箱登录实例
  13. 二阶振荡环节的谐振频率_典型环节的频率特性二阶振荡环节.ppt
  14. 利用FFMPEG实现音频视频升降调
  15. Kali之MSF的MS08-067漏洞复现详解
  16. 阿里四面+蚂蚁金服四面全挂,是我技术太菜了吗?
  17. 搭建第一个scrapy项目的常见问题
  18. Ureport2数据过滤的方式
  19. 这是在下写的一些小小的项目经验和项目需求
  20. 手机h5像素_塔防游戏:全民主公H5,最好玩的塔防游戏

热门文章

  1. AS和JS通讯基础 ExternalInterface
  2. 单片机实验——十六路抢答器 ,抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。本设计采用矩阵键盘节省输入的I/O口,带有奇偶校验的双单片通信。
  3. Python这个黑科技,让你走上致富道路
  4. Flink线上问题: The assigned slot container_xxx was removed
  5. 【STM32单片机-库函数】继电器——relay
  6. 【IDEA】代码质量检测工具 QAPLug
  7. vc6.0使用DAO访问access2000的问题
  8. 史上最好用教程——Vs Code 配置c++环境【带有环境安装包】
  9. Python:读取 csv 文件并插入到 PostgreSQL 数据库
  10. JavaScript实例之相册功能中单图放大展示