我有一个内部页面大小为8k的SSD,但是linux仅支持4k页面大小。我的问题是,当使用Java内存映射文件时,我一次能以4k或8k块进行读取/写入时会获得更好的性能。我正在使用内存映射文件构建基于磁盘的哈希映射,其中每个存储桶都是4k或8k块。如果即使我仅访问它的前4k,ssd也要读取8k,则似乎应该使用8k块,否则会浪费一半的读取次数。但是,由于linux仅以4k块工作,因此我不知道从OS的角度读取两页是否会产生开销,即使从ssds的角度来看只有一页也是如此。

最佳答案

您可以避免使用开放式寻址来完全选择一个块大小。然后让OS和硬件完成找出执行每个操作的最有效方式的工作。

07-24 19:42