码迷,mamicode.com
首页 > 其他好文 > 详细

Logger日志输出要使用占位符{}

时间:2021-01-11 10:46:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:使用率   就是   操作   需要   解决   方式   可变   方法   一个   

最近项目做完,对一个接口应该压测的时候,测试人员反馈,并发从1加到10的时候,tps(每秒钟request/事务 数量)会遇到越来慢,并且内存使用率很高。

  看了具体的代码,也就是很简单的crud的操作,确认是有一些代码对数据库的查询有冗余,查询了两次。怀着试试的态度把代码修改成了查询一次。又试了一次,发现问题还是没有解决掉。最终定位到因为这个接口接收的参数中base64的数据,这个方法的第一句就是

 1 logger.info("收到的参数:"+str); 

  因为收到的数据参数比较大,并且打印日志的是使用字符串拼接的方式,这样就会造成创建String对象的时候创建大量的资源。因为String对象是不可变的,所以会消耗大量的堆内存。修改打印日志的方法

 1 logger.info("收到的参数:{}",str); 

可以修改这样的,使用占位符,对于占位符的形式而言,只有在我们需要的时候才会提取字符串,这样就会避免创建string对象的时候消耗大量的资源。

总结:写每行代码都应该深思熟虑,简单的一句日志输出,造成了很大的性能问题,还有tps变慢。得不偿失!!!

Logger日志输出要使用占位符{}

标签:使用率   就是   操作   需要   解决   方式   可变   方法   一个   

原文地址:https://www.cnblogs.com/wuxixin/p/14249029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!