1

我有一个多线程代码,需要从不同的线程写入日志。为了提高效率,我为线程设置了一个内存块,以便通过互斥锁同步写入它。但是我做了一个简单的测试,似乎写入硬盘的速度也很快。我正在使用Linux。不确定写入硬盘驱动器是否实际上更快或者我做错了什么?

4

2 回答 2

2

您可能有系统缓冲区缓存效应,隐藏了磁盘 ios 的实际成本,因此 2 个测试之间没有差异。

于 2012-08-21T12:21:11.283 回答
0

它还取决于您现在使用的文件系统的类型。例如,ext4 fs 支持所谓的“懒惰”写入。您可以通过传递给您的挂载选项来切换此选项。

data=writeback. 

这意味着文件的元数据可以在文件写入后延迟写入。这不会导致文件系统损坏,但可能会导致最近的更改在发生崩溃时丢失(因此您可能会跳回到过去)。结果,将推迟真正写入磁盘。而且您的测试可能不那么正确。

于 2012-08-21T12:26:17.840 回答