由于客户对项目的页面响应时间要求很高,所有请求的响应时间必须在1秒内,因此我们在做开发的时候,特别注意效率问题。今天我在自己的机器上对系统做优化时,发现有个页面怎么调整都无法达到要求,即使把访问数据库取数据的方法都屏蔽了,页面的响应时间依然为2秒多。对所有可能有效率问题的地方使用per4j,监视方法的执行时间。结果非常出乎意料,有一个使用log4j输出日志的地方,居然耗时600ms。狂晕,立刻修改log4j的配置,将DEBUG模式改成Error模式,再次测试,速度有了质的飞跃,响应时间上升到100ms左右。继续修改log4j的配置文件,发现将日志输出到文件中,速度并不慢,如果输出到控制台,速度下降很多。最后,我将Log4j的配置改成DEBUG模式,只把日志输出到文件。
测试系统环境:
JDK1.6.0.20
Log4j1.2.8
参考资料:
1,Log4j,http://logging.apache.org/log4j/1.2/index.html