linux内核 idr机制
2024-08-26 02:24:15
idr机制解决了什么问题?为什么需要idr机制(或者说,idr机制这种解决方案,相对已有的其他方案,有什么优势所在) ?
idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制。
假设我们的代码内需要将一个设备的ID号和描述该设备信息的结构体联系,我们应该怎么做?
最简单的方法当然是通过数组(在当前场景下准确说,是结构体数组,每个数组元素包含一个ID和一个指针。但是结构体数组,依然是数组!)进行索引,
但如果ID号的范围很大(比如32位表示的ID号),则用数组索引显然不可能,因为这需要定义很大的数组,消耗很大的内存空间。
第二种方法是用链表,查找的时候根据ID来遍历链表。但如果实际存在的设备较多,则链表的查询效率会很低。
遇到上述清况,我们就可以采用idr机制,该机制内部采用radix树实现,可以很方便地将整数和指针关联起来,并且具有很高的搜索效率。
idr树实现机制,参考:
https://blog.csdn.net/midion9/article/details/50923095
.
最新文章
- LeetCode——Single Number II(找出数组中只出现一次的数2)
- JQuery 学习笔记(01)
- rails之 Migrations (转)
- swift:入门知识之泛型
- 解决Java版CKFinder无法显示缩略图问题
- Windows Azure 社区新闻综述(#71 版)
- 大整数相乘问题总结以及Java实现
- BZOJ 2940: [Poi2000]条纹(Multi-Nim)
- vue特殊属性 key ref slot
- Direct3D 11 Tutorial 1: Basics_Direct3D 11 教程1:基础
- 01-python3.5-模块导入-while-for-range-break-continue
- 刘志梅201771010115.《面向对象程序设计(java)》第四周学习总结
- centos6安装rabbitmq
- JVM G1GC参数配置
- 【java基础】基础小总结
- ubuntu18.04初始化配置
- iOS图标抖动效果
- Docker搭建RabbitMQ集群
- 小程序animation动画效果综合应用案例(交流QQ群:604788754)
- java.lang.Error: Unresolved compilation problem: 解决方案