2014-08-29 148 views
0

我想知道是否有办法禁用C++代码的文件缓存。我正在从磁盘读取,写入和修改某些文件格式的某些测试,并且时间测试最可能由于缓存而偏斜。我想知道是否有任何快速方法可以使用任何编译器指令或特定于操作系统的命令关闭缓存?禁用C++代码的文件缓存

我的测试目前使用gmake在linux,mac和windows上构建。任何建议/意见,欢迎。

谢谢。

回答

1

在符合POSIX的操作系统上,fsync可能是您要查找的内容。在读取文件之前和修改之后调用它。这可能会让你的程序变慢很多。

+0

感谢您的回答。有没有一个独立于平台的方式来做到这一点,或者是一个特定于Windows的方法? – SkypeMeSM 2014-09-02 20:17:07

+0

我觉得windows api有相当的可能性。我不知道一个跨平台的包装器,但是一旦你找出适当的功能,自己写一个不应该太困难。 – user2079303 2014-09-02 20:46:14