gpt4 book ai didi

C++ ios::out 文件流标志:为什么会影响性能?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:56 29 4
gpt4 key购买 nike

我的程序正在将大量(一次 250,000 个)uint16_t 写入文件。出于某种原因,设置 ios::out 标志(不必要,因为 VS2010 会自动设置它)会导致性能下降大约 10 倍。 (见之前/之后)。知道设置该标志会导致如此巨大的性能差异是什么意思吗?

之前:

fileoutput.flags(ios::out); 

Before

之后:

//fileoutput.flags(ios::out);  

After

最佳答案

flags 应该用来设置流的格式标志,例如输出是左对齐还是右对齐,或者 bool 值应该打印成数字还是字符串,所以你不能用它来设置流的打开模式和实际调用 fileoutput.flags(std::ios::out) 是一个带有无效参数的调用。错误的可能原因是您的 std::ios::out 的实现值等于 std::ios::unitbuf 导致每个缓冲区刷新单次插入肯定会导致巨大的性能损失。

关于C++ ios::out 文件流标志:为什么会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654405/

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