【发布时间】:2012-10-10 16:26:13
【问题描述】:
在基于内存的计算模型中,通过考虑数据结构,可以抽象地完成唯一需要完成的运行时间计算。
但是,关于高性能磁盘 I/O 算法的文档并不多。因此,我提出以下问题:
1) 我们如何估计磁盘 I/O 操作的运行时间?我假设我们可以添加一组简单的常量来在磁盘上而不是在内存中查找值...
2) 更具体地说,访问文件中特定索引的性能有何不同?这是一个恒定时间操作吗?还是取决于指数“下降”多远?
3) 最后... JVM 如何优化对文件索引部分的访问?
而且...就资源而言——一般来说...是否有任何用于磁盘数据结构实现的好的习语或库?
【问题讨论】:
-
唯一的运行时间计算请求可以通过考虑数据结构抽象地完成,这并不正确,因为缓存感知甚至cache oblivious 的属性非常重要那些。至于磁盘操作,主要结构是 B-Tree,它是一种可感知缓存的结构。