gpt4 book ai didi

java - 如何对齐文件系统 I/O?

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:42 25 4
gpt4 key购买 nike

一些基准测试(尤其是 SSD)区分了 (4k-) 对齐和非对齐读/写。我明白为什么对齐可以更快,但我看不出如何确保在我的程序中读取/写入将正确对齐到实际介质。

我认为这不会像确保不在不能被 4096 整除的文件中查找任何地址那样简单吗?毕竟,系统不保证文件的开头会正确对齐(或者确实如此?)

像 IOMeter 这样的程序如何对齐它们的 I/O?有什么办法可以用 Java 实现吗? (或者更一般地说,在 VM 中运行的程序)。

我的另一个问题是 IOMeter 如何可以有一个大于 1 的队列深度,只有一个线程/进程(以及我自己如何做到这一点)——但我不确定这是否与对齐的 I/O 相关更多,或者打开一个关于它的新问题。

最佳答案

我怀疑你绝对能做到,但你可以大大增加你的机会。

  • 确保文件系统与物理介质一致。有关 Linux 中的注意事项(仅作为示例),请参阅 here .
  • 如果您按顺序访问数据,请确保使用的缓冲区大小是 block 大小的整数倍。 4096 或 8192 通常是安全的选择。
  • 如果您正在寻找或进行随机访问,正如您所说,您需要寻找 block 大小的倍数并填充缓冲区。同样,使用 4096 或 8192 通常都是安全的。

关于java - 如何对齐文件系统 I/O?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10896351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com