是否建议 C++ 程序员经常写这样的行:
std::cout << "output: " << i << " and " << j << std::flush;
//more
std::cout << "ending newline." << std::endl; //endl does flush
换句话说,在没有的输出行中endl
,我们应该flush
荷兰国际集团很多,以防万一?或者现在大多数平台都不再需要这样做了?
您的平均程序不需要频繁刷新。冲洗更接近于某些情况下所需的特殊情况:
- 与人类或其他系统交互:在等待输入之前刷新输出是明智的。
- 休眠一段时间:在延长睡眠或等待之前刷新可以简化日志文件的检查,使数据库在大多数时间保持一致等。
如果不需要缓冲,最好首先禁用缓冲,而不是进行大量刷新。
大多数时候,程序通过启用缓冲而受益。有时他们会到处生成一些字符。其他时候,他们会输出大量的线条。
在我数十年的工程生涯中,最显着的性能提升往往是通过改进缓冲来实现的。有时通过增加默认值FILE
缓冲区大小超过 512 字节(默认)为 4K 或 32K(有时更高)。其他时候通过添加一层缓冲或缓存。通常,每次访问操作系统的 I/O 系统都会产生很高的开销。减少系统调用总数(通常)是一种简单且高效的提高性能的方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)