java内存映射文件,SSD的4k或8k块读/写?
Posted
技术标签:
【中文标题】java内存映射文件,SSD的4k或8k块读/写?【英文标题】:java memory mapped file, read/write in 4k or 8k blocks for a SSD? 【发布时间】:2013-05-27 19:54:51 【问题描述】:我有一个内部页面大小为 8k 的 SSD,但 linux 仅支持 4k 页面大小。我的问题是,当使用 java 内存映射文件时,我一次可以在 4k 或 8k 块中获得更好的性能读/写。我正在使用内存映射文件构建基于磁盘的哈希映射,其中每个存储桶是 4k 或 8k 块。如果 ssd 将读取 8k,即使我只访问它的前 4k,那么似乎我应该使用 8k 块,否则我会浪费一半的读取。但是,由于 linux 仅在 4k 块中工作,我不知道从操作系统的角度读取两页是否会有开销,即使从 ssds 的角度来看它只有一页,如果你得到我的 jist。
【问题讨论】:
【参考方案1】:您可以通过使用开放寻址来完全避免选择块大小。然后让操作系统和硬件来找出执行每个操作的最有效方式。
【讨论】:
以上是关于java内存映射文件,SSD的4k或8k块读/写?的主要内容,如果未能解决你的问题,请参考以下文章