Java:System.out.println()这么慢的原因是什么?

Dra*_*orn 9 java console performance stdout

对于可以在文本编辑器中完成的小型逻辑程序,为了跟踪我使用经典System.out.println().

我猜你们都知道在大量迭代的块中使用它是多么令人沮丧.为什么这么慢?它背后的原因是什么?

Mic*_*rdt 33

这与JVM没有任何关系.将文本打印到屏幕简单地涉及操作系统在绘制字母和尤其是滚动时的大量工作.如果将System.out重定向到文件,则速度会快得多.

  • +1"用于绘制字母,尤其是滚动".谢谢 (4认同)

ska*_*man 12

这非常依赖于操作系统.例如,在Windows中,写入控制台是一种阻塞操作,而且速度也很慢,因此将大量数据写入控制台会减慢(或阻止)应用程序的速度.在unix类型的操作系统中,写入控制台是缓冲的,因此您的应用程序可以继续解锁,控制台将尽可能地赶上.


ng.*_*ng. 5

Ya,写入控制台有大量的开销.远远大于写入文件或套接字所需的内容.此外,如果有大量线程,他们都在同一个锁上竞争.我建议使用其他System.out.println来跟踪.