一、logback和log4j2压测比较
1、logback压测数据
logback压测数据,50个线程,500万条日志写入时间。
logback:messageSize = 5000000,threadSize = 50,costTime = 27383ms logback:messageSize = 5000000,threadSize = 50,costTime = 26391ms logback:messageSize = 5000000,threadSize = 50,costTime = 25373ms logback:messageSize = 5000000,threadSize = 50,costTime = 25636ms logback:messageSize = 5000000,threadSize = 50,costTime = 25525ms logback:messageSize = 5000000,threadSize = 50,costTime = 25775ms logback:messageSize = 5000000,threadSize = 50,costTime = 27056ms logback:messageSize = 5000000,threadSize = 50,costTime = 25741ms logback:messageSize = 5000000,threadSize = 50,costTime = 25707ms logback:messageSize = 5000000,threadSize = 50,costTime = 25619ms
说明:
这个是logback日志的压测数据,在开发机(双核四线程),高配开发机(四核八线程)和服务器(32核)压测的效率都差不多,而且线程开多的时候,性能反而有下降,压测数据如下:logback:messageSize = 5000000,threadSize = 100,costTime = 33376ms
这个是在32核机器上压测的平均值,高于开发机。
2、log4j2压测数据
log4j2压测数据,因测试数据会占用一些篇幅,这里仅取中位数,但上下差距并不大
log4j2:messageSize = 5000000,threadSize = 100,costTime = 15509ms
Log4j2的性能为什么这么好?都是因为disruptor
最新推荐文章于 2024-07-21 10:30:00 发布
本文对比了logback和log4j2的压测数据,显示log4j2在多线程环境下性能远超logback,尤其是在使用异步日志时。这主要归功于其内置的优秀消息队列组件Disruptor,通过环形数据结构和CAS操作避免锁竞争,提高吞吐量。文章还介绍了ArrayBlockingQueue的性能瓶颈,并提供了log4j2的配置建议。
摘要由CSDN通过智能技术生成