在Windows 7上,桌面上有两个文件A和B. 这些文件具有自定义格式。 我将它们逐个加载到我的应用程序中(在应用程序中加载A;退出应用程序,再次打开应用程序然后加载B)。 负载为20秒,B负载为10秒。
我重新启动机器以删除Windows文件缓存效果(我正在测量加载文件的性能)。 现在我加载文件B然后加载文件A.现在B加载20秒,A加载10秒。
这两个文件彼此无关,我的应用程序没有特殊的逻辑可以解释这种行为......那么这怎么解释呢? 我想到的一个想法是dll文件可能已被缓存?对于如此大的差异,这可以是一个合理的解释吗?
另一个问题:是否有更好的方法来测量负载性能(包括I / O),最好不涉及机器重启?
(当然,如果我在没有重新启动机器的情况下加载A两次,加载时间会少得多......我认为这是由于Windows文件缓存)
答案 0 :(得分:0)
你可以尝试使用标志创建文件:FILE_FLAG_NO_BUFFERING,并加载那些以查看性能结果吗?应始终从物理磁盘而不是Windows文件系统缓存中读取具有此标志的文件。
资源:http://msdn.microsoft.com/en-us/library/windows/desktop/aa364218(v=vs.85).aspx