Joe*_* M. 2 c++ out filestream ios
我的程序正在将uint16_t的大数字(每次250,000)写入文件.出于某种原因,设置ios :: out标志(不必要,因为VS2010会自动设置它)导致性能下降大约10倍.(见前/后).知道设置那个可能导致如此巨大性能差异的标志是什么意思吗?
之前:
fileoutput.flags(ios::out);
Run Code Online (Sandbox Code Playgroud)

后:
//fileoutput.flags(ios::out);
Run Code Online (Sandbox Code Playgroud)

flags应该用来设置流的格式标志,例如输出是左对齐还是右对齐,或者布尔值应该打印为数字或字符串,所以你不能用它来设置流的开放模式,实际调用fileoutput.flags(std::ios::out)是一个调用参数无效.并且可能的错误原因在于您的实现值std::ios::out等于std::ios::unitbuf导致每次插入的缓冲区刷新,这肯定会导致巨大的性能损失.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |