【发布时间】:2016-10-27 06:48:54
【问题描述】:
我正在开发一个按顺序写入大文件(并且根本不读取)的应用程序,我想使用posix_fadvise() 来优化文件系统行为。
手册页中的函数描述表明最合适的策略是POSIX_FADV_SEQUENTIAL。但是,Linux 实现描述怀疑:
在 Linux 下,
POSIX_FADV_NORMAL将预读窗口设置为支持设备的默认大小;POSIX_FADV_SEQUENTIAL将这个大小加倍,POSIX_FADV_RANDOM完全禁用文件预读。
由于我只是在写入数据(也可能覆盖文件),因此我不希望有任何预读。然后我应该坚持使用我的POSIX_FADV_SEQUENTIAL 还是使用POSIX_FADV_RANDOM 来禁用它?
其他选项怎么样,例如POSIX_FADV_NOREUSE?或者根本不使用posix_fadvise() 写作?
【问题讨论】:
标签: c optimization posix