速度测试的问题(Windows中的HDD缓存?)

时间:2016-05-12 09:37:57

标签: c# windows performance performance-testing

我正在研究一种分析大型原始数据文件的工具(来自质谱仪但与我的问题无关)。这样的文件大约是4到8GB的大型二进制文件。为了访问这些文件,我有两个来自仪器供应商的API供我使用。

我目前的任务是找出两个API中哪一个更快。现在的问题是,每次我在我的工具中运行相同的原始文件超过一次,第二次更快(我们正在谈论从10到2分钟的变化),即使我关闭并重新启动每个应用程序时间(我身边没有缓存,据我所知也没有来自API) 这当然使得执行适当的性能基准变得非常困难。

Windows(7到10)中是否存在执行相同大规模文件缓存的已知机制?硬盘驱动器有这么大的缓存吗?有什么方法可以禁用它,以便我可以在后续测试中运行相同的文件,以便它总是像第一次一样执行?

感谢您的帮助 奥利

1 个答案:

答案 0 :(得分:0)

答案隐藏在你的话背后的细节

  

...访问这些文件......

缓存对相应性能的影响完全取决于访问文件的方式。您观察到的第一次和另外一次运行之间存在如此巨大的差异,即10分钟与2分钟之间的差异,这清楚地表明访问并不简单。

尝试顺序写入或读取4GB文件。你永远不会遇到缓存,也没有缓存可以帮助你。

我建议什么?从这里开始:

File caching in Windows

Limit the file caching

但是不要珍惜你的希望。这些日子,文件访问变得如此复杂和分层,就像洋葱......或食人魔。

我还有什么建议?退出对抗文件系统优化。与之共存。进行测试"以上"文件系统即比较"冷"缓存并单独比较" hot"缓存。这似乎更接近现实世界。