当我第一次启用日志记录时,我注意到我的一个项目中的一个巨大的表现.但是当达到日志文件限制,并且程序再次开始写入文件的开头时,记录速度要快得多(快50%).将日志文件大小设置为数百MB是很正常的.
void ReserveSpace(LONG spaceLow,LONG spaceHigh,HANDLE hFile) { DWORD err = ::SetFilePointer(hFile,spaceLow,&spaceHigh,FILE_BEGIN); if (err == INVALID_SET_FILE_POINTER) { err = GetLastError(); // handle error } if (!::SetEndOfFile(hFile)) { err = GetLastError(); // handle error } err = ::SetFilePointer(hFile,FILE_BEGIN); // reset }