gpt4 book ai didi

windows - 在写入文件之前预留磁盘空间以提高效率

转载 作者:可可西里 更新时间:2023-11-01 12:27:50 24 4
gpt4 key购买 nike

我注意到我的一个项目在第一次启用日志记录时性能受到了巨大影响。但是当达到日志文件限制并且程序再次开始写入文件的开头时,日志记录速度要快得多(大约快 50%)。将日志文件大小设置为数百 MB 是正常的。

大多数下载管理器在开始下载文件之前分配所需大小的虚拟文件。这使得写入更加高效,因为整个 block 是一次性分配的。

当我的程序第一次启动时,以固定大小有效保留磁盘空间的最佳方法是什么?

最佳答案

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, 0, 0, FILE_BEGIN); // reset
}

关于windows - 在写入文件之前预留磁盘空间以提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com