论坛首页 Java企业应用论坛

log4j真的比JDK logger快吗?

浏览 14110 次
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2009-09-23  
lcllcl987 写道
我只想说一句:
log4j可以设置异步打印(org.apache.log4j.AsyncAppender,要提升性能, 请试一下这个), 可以支持log格式为html格式,可以把log配置打印到数据库...


这个异步,一般情况下并不能提高多少效率。
当并发线程很多的时候,线程的同步也是很大的消耗。并不会提高很多。
0 请登录后投票
   发表时间:2009-09-23  
如果争论这个的话,不如用logback,更快
0 请登录后投票
   发表时间:2009-09-23  
呵呵  以前一直想说的一句话
ray_linn 这个人的说话风格太符合他的头像了
也许正是这种风格而选择了这种头像吧

一般也不太会注意头像,不知道为什么他的头像特别显眼。
0 请登录后投票
   发表时间:2009-09-23  
bohemia 写道
lcllcl987 写道
我只想说一句:
log4j可以设置异步打印(org.apache.log4j.AsyncAppender,要提升性能, 请试一下这个), 可以支持log格式为html格式,可以把log配置打印到数据库...


这个异步,一般情况下并不能提高多少效率。
当并发线程很多的时候,线程的同步也是很大的消耗。并不会提高很多。

你说的,正是异步打印log的原因。
和你说话, 感觉毫无逻辑可言。是否提高效率,那是靠数字说话的。
0 请登录后投票
   发表时间:2009-09-23  
回楼上。
我本地的前段时间测试的数据依据不在了。
不过JE上有位同学也有一些数据。
http://littcai.iteye.com/blog/316605

0 请登录后投票
   发表时间:2009-09-23  
所谓log的性能, 在鄙人看来就是对程序本身几乎没有影响,就是最大的性能。
而不是写log是1ms还是10ms
0 请登录后投票
   发表时间:2009-09-23  
lcllcl987 写道
所谓log的性能, 在鄙人看来就是对程序本身几乎没有影响,就是最大的性能。
而不是写log是1ms还是10ms


不同人看法不同吧。
如你所说,性能必须是可量化的才是可测量的。 所以数字更能说明问题。
如果同样的环境下,log从10ms到1ms。就意味着有提升。

另外,你提到的最大的性能。我没见到过。任何日志记录实现(只要是消耗CPU的),就不会“几乎没有影响”。
0 请登录后投票
   发表时间:2009-09-23  
xieyongwei 写道
呵呵  以前一直想说的一句话
ray_linn 这个人的说话风格太符合他的头像了
也许正是这种风格而选择了这种头像吧

一般也不太会注意头像,不知道为什么他的头像特别显眼。



一般不太会注意头像  恐怕原因是很多人都没有头像..

0 请登录后投票
   发表时间:2009-09-23  
bohemia 写道
lcllcl987 写道
所谓log的性能, 在鄙人看来就是对程序本身几乎没有影响,就是最大的性能。
而不是写log是1ms还是10ms


不同人看法不同吧。
如你所说,性能必须是可量化的才是可测量的。 所以数字更能说明问题。
如果同样的环境下,log从10ms到1ms。就意味着有提升。

另外,你提到的最大的性能。我没见到过。任何日志记录实现(只要是消耗CPU的),就不会“几乎没有影响”。


他说的没错啊,其实很多系统中,log的性能就看它对现有系统是不是有影响,特别是那种log很多的系统,异步的log输出是非常有用的,所谓对cpu的影响,只想说对于现在的硬件来说,基本是没影响.并且现在多数的系统其实对cpu的要求都不算高,性能问题主要都出现在io(数据库,硬盘读写)上.
0 请登录后投票
   发表时间:2009-09-24  
香克斯 写道
bohemia 写道
lcllcl987 写道
所谓log的性能, 在鄙人看来就是对程序本身几乎没有影响,就是最大的性能。
而不是写log是1ms还是10ms


不同人看法不同吧。
如你所说,性能必须是可量化的才是可测量的。 所以数字更能说明问题。
如果同样的环境下,log从10ms到1ms。就意味着有提升。

另外,你提到的最大的性能。我没见到过。任何日志记录实现(只要是消耗CPU的),就不会“几乎没有影响”。


他说的没错啊,其实很多系统中,log的性能就看它对现有系统是不是有影响,特别是那种log很多的系统,异步的log输出是非常有用的,所谓对cpu的影响,只想说对于现在的硬件来说,基本是没影响.并且现在多数的系统其实对cpu的要求都不算高,性能问题主要都出现在io(数据库,硬盘读写)上.

是啊。性能问题。
前段时间,专门做日志输出的性能优化。
从文件,到异步,到JMS,Socket都快尝试变了。
但各种方式比较下来,变化提升不大。

尤其log4j的AsynAppender,这个你看了源代码就知道的。都是做并发控制的。并发的情况下,性能表现并不会提升。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics