jit*_*hsk 4 c linux io caching memory-management
我有一个读取基准,并且在连续运行之间,我必须确保数据不驻留在内存中,以避免因缓存而出现影响。到目前为止,我所做的就是:运行一个程序,在连续运行读取基准测试之间写入一个大文件。就像是
./read_benchmark
./write --size 64G --path /tmp/test.out
./read_benchmark
Run Code Online (Sandbox Code Playgroud)
write 程序只是将一个大小为 1G 的数组写入文件 64 次。由于主存的大小是64G,所以我写了一个大约的文件。相同的尺寸。问题是写入需要很长时间,我想知道是否有更好的方法来做到这一点,即避免数据缓存时出现的影响。
另外,如果我将数据写入/dev/null 会发生什么?
./write --size 64G --path /dev/null
Run Code Online (Sandbox Code Playgroud)
这样,写入程序退出得非常快,实际上没有执行任何I/O,但我不确定它是否覆盖了64G的主存,这正是我最终想要的。
非常感谢您的意见。
您可以使用特殊文件删除所有缓存,/proc如下所示:
echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
这应该确保缓存不会影响基准测试。
| 归档时间: |
|
| 查看次数: |
2686 次 |
| 最近记录: |