【发布时间】:2012-10-10 10:49:54
【问题描述】:
我正在用 C++ 编写一个时间关键型应用程序,我将数据写入一个日志,该日志在 Web 浏览器中不断显示和更新(我无法更改这一点,请不要建议使用其他解决方案)。
目前我每 100 毫秒做一次这样的事情来转储数据(整个文件必须在每次转储时重写):
ofstream log_file(log_path);
//Do some error handling
log_file << "Quite some data" << endl;
log_file.close();
问题是程序每调用几次就需要大约 20 毫秒来打开日志,这似乎会在某些系统上导致大量硬盘使用(我怀疑硬盘在每次重新打开过程中都会再次寻找文件)。
有没有办法让文件句柄一直打开,以便系统希望保留一些指向文件的指针,以最大限度地减少延迟和硬盘使用?如果需要,我也很乐意切换到不同的 Write-API。
【问题讨论】:
标签: c++ windows file-io ofstream