12, 日志记录也会影响性能

slf4j + logback

如果我们记录DEBUG日志,并设置只记录>=INFO级别的日志,程序是否也会耗时1秒呢?我们使用三种方法来测试:

  1. 拼接字符串方式记录slowString;
  2. 使用占位符方式记录slowString;
  3. 先判断日志级别是否启用DEBUG。

log.debug(“debug1:” + slowString(“debug1”));

log.debug(“debug2:{}”, slowString(“debug2”));

if (log.isDebugEnabled()){log.debug(“debug3:{}”, slowString(“debug3”));} //这种效率高

使用占位符方式记录slowString的方式,同样需要耗时1秒,是因为这种方式虽然允许我们传入Object,不用拼接字符串,但也只是延迟(如果日志不记录那么就是省去)了日志参数对象.toString()和字符串拼接的耗时。

使用{}占位符语法不能通过延迟参数值获取,来解决日志数据获取的性能问题。

如果你的日志量很大,获取日志参数代价也很大,就
要进行相应日志级别的判断,避免不记录日志也要花费时间获取日志参数的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值