通常,列表实现为链表或数组列表。链表遍历速度较慢,而数组列表在插入元素时速度也很慢。
我在想,是否可以利用处理器的MMU更有效地实现列表,通过重新映射而不是复制内存来进行元素插入或删除。这意味着对于数组中的任何位置,索引和插入/删除都具有O(1)的速度,比任何其他列表实现更好。
我的问题是:
- 程序实际上能控制自己的虚拟内存吗,还需要对操作系统进行更改吗?
- 每个进程的页表项数量是否有限制?随着条目增加,内存访问是否变得更慢?
- 更改页表项是否如此缓慢,以至于这仅适用于非常大的列表?
- 是否存在此类型列表的任何现有实现?如果有,是什么阻止人们更多地使用它们?