众所周知,C
、F
、L
、l
和 M
PatternLayout are slow :
WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue.
此外,this book提到某些应用程序仅通过更改日志记录格式可以获得 10% 的速度。
但问题是,这些转换字符到底有多慢?
最佳答案
我使用 FileAppender 在计算机上进行了本地测量。我很好地预热了测试,测量了许多执行并对(相对一致的)结果进行平均。循环包含 execs++;log.info("t");
确切的数字并不重要(因为它们取决于我的计算机)但比例很重要。我在 Java 1.6.0_10(客户端 VM)上使用了 log4j-1.2.16.jar。
事实证明,每当 C、F、L、l 或 M
中的任何一个出现在模式中时,日志记录至少要慢 5 倍。
关于java - PatternLayout (log4j) 的 C、F、L、l 和 M 到底有多慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819498/