Java EE应用程序中的System.out.println危害

鲁迪:

当我开始学习Java时,被告知不要在Java EE应用程序中执行System.out.println。但是我真的不知道不这样做的原因是什么。

我完全知道,如果我们真的需要打印重要内容,则应该使用日志记录框架对其进行记录。

我在这里真正想问的是System.out.println是否造成任何真正的危害它会导致性能问题吗?

Barend:

这确实是一个性能问题。如果深入研究JDK源代码,System.out最终将synchronized在输出流上遇到一个块。

这意味着,如果您在源代码中放置了足够的println调用,则整个代码库将有效地运行单线程,因为所有线程都在等待同步锁。

这里涉及一些统计信息,对println的一次调用通常不会使整个应用程序爬行。您的代码中的println调用越多,则两个或更多线程相互等待的可能性就越大。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java:不能再在我的应用程序中使用System.out.println()

Java多线程应用程序System.out.println产生延迟

System.out.println-Java

System.out.println()与Java中的\ n

Java差异StdOut与System.out.println

较短版本的Java System.out.println()

什么是Java中System.out.println()中的system,out,println

system.out.println()和println()之间的java区别

Java System.out.println()影响程序流

Java中的toString-System.out.println与Android中的日志

Java中System.out.println的怪异行为

Java 8中“ System.out :: println”的用途是什么

Java中“ System.out.println()”和“ toString()”之间的连接

Java中的System.out.println()易失

Java中System.out.println()和return之间的区别

Javascript中相当于Java的System.out.println()?

Java中System.out.println的含义是什么?

如何在Java中缩短system.out.println

Java中的System.out.println-是否在本机方法中初始化out?

Java 10:System.out.println(...)的“找不到文档”

在Java中使用System.out.println的多个线程

什么是Java System.out.println的PHP等效项

如何使用 System.out.println 查找 Java 类?

在System.out.println()中

使用Java,如何创建一个控制台应用程序来处理system.out中的文本?

如何使一个Java程序同时打印out.println()和err.println()语句?

为什么Java中的System.out.println()打印到控制台?

该反射Java代码如何捕获System.out.println中的字符串?

为什么在System.out.println()中不需要java.io.PrintStream?