正如缓存遗忘和缓存最优算法一样,是否有寻求最佳算法?

时间:2014-06-24 23:03:44

标签: algorithm seek cache-oblivious

缓存(遗忘|最佳|意识)算法通常会考虑在模型中寻找时间。如果没有那些考虑寻道时间的模型的例子,并且在这个模型中有算法分析。

1 个答案:

答案 0 :(得分:4)

是的,我亲自编写了寻求敏感算法。文件系统当然使用搜索敏感数据结构(类似于算法)。

例如,NTFS(以及许多其他文件系统)以B-tree格式存储数据,以最大限度地减少对顺序读取的搜索和优化。

不幸的是,在2014年固态硬盘和其他技术即将完全取代旋转媒体的时候,你会问这个问题。 SSD确实遭受了一些寻求惩罚,但与旋转硬盘驱动器相比,它们每秒可以处理数万次搜索,而这些硬盘可能无法处理每秒100次搜索。与过去几年相比,这使得寻求问题更少。

类似且更相关的问题是CPU上的缓存行一致性。 RAM速度跟不上CPU速度,多核CPU使NUMA成为真正的性能问题。为了优化性能,许多算法实现被推送为尽可能少的内存,并且比远程内存更频繁地使用附近的内存。

例如,堆数据结构比树更友好。当性能敏感的代码是实用的选择时,它会选择在树上使用堆。

这个缓存问题至少在过去十年中一直是最重要的性能问题。几乎所有非平凡的程序在针对大小而不是速度进行优化时运行得更快,并且缓存未命中是原因。