记一次日志优化引发的性能提升

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

背景阐述:

1. 程序中有统一的拦截,入参,出参,请求时间的日志打印
2. 接口是一个批量处理接口,一次传入200个id,然后循环处理业务,最终返回,业务接口是A循环调用B方法,其中B方法还会被一个调用量较高的接口调用,高峰期qps达到1600
3. 在B方法中有三种处理方式,首先,从本地缓存取,取不到数据则从redis中取,从redis取不到再从DB中取,每一种方式都打印一行日志,因此无论命中哪种方式,都会打印一行日志,每一次请求(200个id)就会打印200行日志

优化

4. 优化前日志每天的量在24G左右,将日志去掉后,如愿以偿日志量减少,随后观察三天日志量都在13G,减少了一半,效果明显,除此之外还意外的发现一次传入200个id的接口响应时间由开始的300ms稳定到200ms左右,响应时间减少了100ms
5. 假如一次传入200个id,那么会循环调用B方法200次,就会打印200次日志,响应时间减少100ms,差不多0.5毫秒要处理打印日志

结论

循环里如果没有必要就不要打日志,循环次数多的时候很影响接口性能!!!

你可能感兴趣的:(------JAVA)