您现在的位置是:首页 > 文章详情

FreeBSD 为 SYSINT 采用合并排序取代冒泡排序

日期:2023-08-21点击:249

FreeBSD 维护者 Colin Percival 发帖称,他们已经为 SYSINIT 采用合并排序 (mergesort) 来取代冒泡排序 (bubblesort)。

SYSINIT 是通用调用排序和调度机制的框架,FreeBSD 目前使用它来动态初始化内核。

当加载内核或其模块之一时,SYSINIT 允许在内核链接时对 FreeBSD 的内核子系统进行重新排序、添加、删除和替换,而无需编辑静态排序的初始化路由并重新编译内核。

该框架还允许内核模块(目前称为 KLD)在引导时单独编译、链接和初始化,甚至在系统运行时加载。该操作使用“内核链接器”和“链接器集” ("kernel linker" and "linker sets") 来完成。

via FreeBSD 文档

Colin Percival 表示,使用合并排序后的运行速度比之前快了大约 100 倍。

他此前解释过更换算法的原因,当 FreeBSD 内核在 Firecracker(单核 CPU、128 MB RAM)中启动时,会花费 7% 的时间在其 SYSINIT 上运行冒泡排序。当对一千多个项目进行排序时,O(N^2) 会变得非常复杂,所以需要用更快的算法取代冒泡排序。

原文链接:https://www.oschina.net/news/254664
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章