java内存映射文件,用于SSD的4k或8k块读/写?

时间:2013-05-31 22:02:35

标签: java linux-kernel paging memory-mapped-files ssd

我的SSD内部页面大小为8k,但linux只支持4k页面大小。我的问题是,当使用java内存映射文件时,我会在4k或8k块中一次性地读取​​/写入更好的性能。我正在使用内存映射文件构建基于磁盘的哈希映射,其中每个桶是4k或8k块。如果ssd将读取8k,即使我只访问它的前4k,那么似乎我应该使用8k块,因为我浪费了一半的读取。然而,因为linux只能在4k块中工作,所以我不知道从操作系统的角度来看是否会有从两个页面读取两个页面的开销,即使它只是从ssds的角度来看,如果你得到我的jist。

1 个答案:

答案 0 :(得分:0)

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