java - PatternLayout (log4j) 的 C、F、L、l 和 M 到底有多慢?

标签 java performance logging log4j design-patterns

众所周知,CFLlM 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 倍。

enter image description here

关于java - PatternLayout (log4j) 的 C、F、L、l 和 M 到底有多慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819498/

相关文章:

logging - 如何编辑保存的 Tensorboard 摘要?

Visual Studio 2013 中的 Javascript 控制台输出调试详细程度

java - FTPClient - 550 权限被拒绝

java - 如何枚举哈希表的键和值?

c# - 使用 Repeater 和 SQL 自定义分页

javascript - 与使用 eval 相比,包含 <script> 标签是否有性能提升?

python - 如何防止 Sentry 捕获一些未捕获的异常事件和日志消息?

java - 获取 TimerTask 下次计划运行的时间

java - JVM 是否仅支持 IEEE 754 所需功能的适当子集?

c# - 在循环中创建大量列表的性能问题