【发布时间】:2011-09-15 19:44:13
【问题描述】:
我有一个读取基准,在连续运行之间,我必须确保数据不驻留在内存中,以避免因缓存而出现影响。到目前为止,我以前做的是:运行一个程序,在读取基准的连续运行之间写入一个大文件。类似的东西
./read_benchmark
./write --size 64G --path /tmp/test.out
./read_benchmark
写入程序只是将一个大小为 1G 的数组写入文件 64 次。由于主存的大小是 64G,我写了一个大约 64G 的文件。相同的大小。问题是写入需要很长时间,我想知道是否有更好的方法来做到这一点,即避免缓存数据时出现的影响。
另外,如果我将数据写入 /dev/null 会发生什么?
./write --size 64G --path /dev/null
这样,写程序退出速度非常快,实际上没有进行任何I/O,但我不确定它是否会覆盖64G的主存,这正是我最终想要的。
非常感谢您的意见。
【问题讨论】:
标签: c linux caching memory-management io