gpt4 book ai didi

c++ - C++ 程序员应该经常使用 std::flush 吗?

转载 作者:IT老高 更新时间:2023-10-28 21:46:30 28 4
gpt4 key购买 nike

是否建议C++程序员经常写类似这样的行

std::cout << "output: " << i << " and " << j << std::flush;
//more
std::cout << "ending newline." << std::endl; //endl does flush

换句话说,在没有 endl 的输出行中,我们是否应该经常 flush 以防万一?还是现在大多数平台都不再需要它了?

最佳答案

您的普通程序不需要频繁冲洗。冲洗更接近于在某些情况下需要的特殊情况:

  • 与人或其他系统交互:在等待输入之前刷新输出是明智的。
  • 休眠一段时间:在延长 sleep 或等待之前刷新可简化日志文件的检查,使数据库大部分时间保持一致等。

如果不需要缓冲,最好先禁用缓冲而不是大量刷新。

大多数情况下,程序会因启用缓冲而受益。有时它们会在这里和那里生成一些字符。其他时候,它们会输出大量的线条。

在我几十年的工程生涯中,我最显着的性能提升通常是通过改进缓冲来实现的。有时通过将默认的 FILE 缓冲区大小增加到 512 字节(默认值)以上到 4K 或 32K(有时更高)。其他时候通过添加一层缓冲或缓存。通常每次通过操作系统的 i/o 系统都会有很高的开销。减少系统调用的总数(通常)是提高性能的一种简单而高效的方案。

关于c++ - C++ 程序员应该经常使用 std::flush 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17370093/

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