我有部分答復使用鏈接列表,相信您將在
this page about the CFS scheduler中找到一些有趣的信息,特別是它提到紅黑樹如何處理插件,搜索和刪除等操作的最壞情況這實際上似乎是一個非常理想的調度器屬性.
我會賭注,是的,內核已經看到相當多的分析,這些數據結構似乎在現實世界中表現良好.
linux只有內核可以做什么?This blog post有一些關于內核鏈表使用情況的很好的數據.通過保持每個操作的計數器,這些數據顯然是在正常使用的3天內收集的.
+--------------------+-----------+
| Operation | Frequency |
+--------------------+-----------+
內核數據結構、| Empty Test | 45% |
| Delete | 25% |
| Add | 23% |
| Iterate Start | 3.5% |
linux內核編譯安裝,| Iterate Next | 2.5% |
| Replace | 0.76% |
| Other Manipulation | 0.0072% |
+--------------------+-----------+
交叉編譯linux內核。正如您可以看到,實際訪問元素的操作占總數的6%,而插入和刪除加起來幾乎一半.這是一個用例,其中鏈接列表開始變得更有意義.請注意,數據是在整個內核中收集的,而不是特定的TCP代碼,因此鏈接列表的原理可能在每次使用時可能不一樣,但總數據確實表明這些完全一致.
我認為,同樣重要的是要記住,內核的設計必須能夠從最小的嵌入式設備擴展到處理大量數據的超級計算機,此時算法效率可能開始嚴重超過緩存問題.
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态