在 Windows 10 机器上,我的缓存文件的写入时间似乎大大增加。
下面我已经包括了我们的写入定时操作有/没有 Defender 的干预。对于这个测试,我们将 32KB 块写入 1GB 的预分配缓存文件,36000 次。
以下是启用 Windows Defender 的文件写入时间(机器上的默认行为):
@@@ Manager: [CacheFile] --> 123.524 secs
@@@ Count: 36784. Time: 123524(ms). Average: 3(ms). Max Finished: 218(ms).
@@@ Unfinished: 0. Max Unfinished: 0(ms). Min Unfinished: 0(ms).
@@@ Max Finished Item: [Name: [DirectFileWrite:4294967293]. Pid: 0x00000000000002E8. Tid: 0x00000000000010A0. Data: 0x0000000000000000.].
@@@ Max Unfinished Item: [].
@@@ Min Unfinished Item: [].
@@@ Reporting Time: 0(ms).
当我们的缓存文件被添加到 Windows Defender 的排除列表中时,执行的操作相同:
@@@ Manager: [CacheFile] --> 9.194 secs
@@@ Count: 36784. Time: 9194(ms). Average: 0(ms). Max Finished: 126(ms).
@@@ Unfinished: 0. Max Unfinished: 0(ms). Min Unfinished: 0(ms).
@@@ Max Finished Item: [Name: [DirectFileWrite:4294967293]. Pid: 0x00000000000006F4. Tid: 0x000000000000130C. Data: 0x0000000000000000.].
@@@ Max Unfinished Item: [].
@@@ Min Unfinished Item: [].
@@@ Reporting Time: 0(ms).
@@@@@@@@@
我在想,每次我们写入文件时,Windows Defender 都会对整个文件进行某种检查(打开并检查 1GB 文件的全部数据)。
将缓存文件添加到排除列表将是最后一个选项,所以我想知道是否有人遇到任何类似性质的问题?
我将 Windows C++ API 用于所有 I/O 操作。