gpt4 book ai didi

c - 如何避免读取基准中的缓存效应

转载 作者:IT王子 更新时间:2023-10-29 00:51:25 25 4
gpt4 key购买 nike

我有一个读取基准测试,在连续运行之间,我必须确保数据不驻留在内存中,以避免因缓存而出现影响。到目前为止,我以前做的是:运行一个程序,在连续运行读取基准测试之间写入一个大文件。有点像

./read_benchmark
./write --size 64G --path /tmp/test.out
./read_benchmark

write 程序简单地将大小为 1G 的数组写入文件 64 次。由于主内存的大小是64G,所以我写了一个大约的文件。相同的大小。问题是写入需要很长时间,我想知道是否有更好的方法来做到这一点,即避免缓存数据时看到的效果。

此外,如果我将数据写入/dev/null 会怎样?

./write --size 64G --path /dev/null

这样,write程序退出的很快,实际上并没有进行I/O,但是我不确定是否覆盖了64G的主存,这才是我最终想要的。

非常感谢您的意见。

最佳答案

您可以使用 /proc 中的特殊文件删除所有缓存,如下所示:

echo 3 > /proc/sys/vm/drop_caches

这应该确保缓存不会影响基准测试。

关于c - 如何避免读取基准中的缓存效应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com