打印到控制台vs写入文件(速度)

Chr*_*ian 11 c++

在C++中,如果重复会更快,比如5000次:

cout << "text!" << endl;
Run Code Online (Sandbox Code Playgroud)

要么

my_text_file << "text!" << endl;
Run Code Online (Sandbox Code Playgroud)

(写入文件与cout到控制台)

编辑:

我问,因为在写入控制台时,您会看到所有正在打印的文本,这似乎会减慢循环速度.在文件中,您没有看到正在打印的文本,这似乎需要花费更少的时间.

刚试过它:

控制台:> 2000毫秒使用endl和\n

文件:endl为40 ms,\n为4 ms

Dom*_*rto 15

写入文件会快得多.这尤其正确,因为您在每行之后刷新缓冲区endl.

另外,通过重复cout << "text!\n";5000次,然后使用冲洗缓冲区,可以显着加快打印速度flush().

  • 这可能听起来很蠢......缓冲区究竟是什么? (5认同)
  • 当您将某些内容输出到流(例如cout)时,您发送的任何内容都会在实际放入其中之前存储在缓冲区中(刷新).它偶尔发生,并且当程序的执行正确完成时.但是,使用flush或endl显式刷新它.这只是确保在我们想要的时候打印出来的东西. (2认同)