开发者社区> 问答> 正文

为什么输出换行都会消耗很多时间?

C语言中, printf("numbern") 比 printf("number") 、
C++中, std::cout << number << std::endl 比 std::cout << number 、
Python 中, print number 比 print number,
都要花上更多的时间,比如从一打印到一百万,
C中相差了7秒,C++ 5秒,Python 10秒(虽然python中后一种是把换行改成空格)。
请问为什么会这样?

展开
收起
a123456678 2016-06-03 19:29:06 2176 0
1 条回答
写回答
取消 提交回答
  • 默认情况下stdout是行缓冲的,没有换行的话,程序会尽量缓存,直到某个阈值(比如1024)为止。缓存减少了与IO设备的交互,所以显然速度会更快。如果你在运行的时候把输出重定向文件(文件默认是全缓冲),估计就看不出差别了。

    2019-07-17 19:27:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载