加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows – 在写入文件之前保留磁盘空间以提高效率

发布时间:2020-12-13 20:16:49 所属栏目:Windows 来源:网络整理
导读:当我第一次启用日志记录时,我注意到我的一个项目中的一个巨大的表现.但是当达到日志文件限制,并且程序再次开始写入文件的开头时,记录速度要快得多(快50%).将日志文件大小设置为数百MB是很正常的. 大多数下载管理员在开始下载文件之前分配具有所需大小的虚拟
当我第一次启用日志记录时,我注意到我的一个项目中的一个巨大的表现.但是当达到日志文件限制,并且程序再次开始写入文件的开头时,记录速度要快得多(快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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读