我有一个对延迟非常敏感的例程,它顺序生成整数,但需要将最后生成的整数存储到磁盘以防崩溃或重新启动。
目前我正在寻找文件的开头,然后写出整数,然后在每次生成新的 int 时刷新。刷新是必需的,因此写入至少会命中电池支持的控制器缓存。
寻道的成本很高,所以我想只附加 4 个字节,如果需要恢复,则寻道到最后并读取最后 4 个字节。前面的语句显然假设没有太多其他磁盘活动发生,因此理想情况下,写头应该留在文件末尾。
这个数字通常不会超过 10,000,000,所以 40MB 还不错。
关于如何在不牺牲完整性的情况下实现最小延迟的任何建议?
Linux 2.6+ 上的 C 或 C++