1).在打印日志时,我们可以使用下面的代码:
logger.debug("Entry Number :"+ i + " is "+String.valueOf(entry[i]));
这样做的效率比较低。因为他会遭受到【变量i】和【entry】转换成一个字符串,并且再加上字符串的拼接。这些时间不管你打印不打印这些日志都会消耗。
即有可能你讲DEBUG的模式打印的日志的功能关闭了,但是上面那就话还是会消耗时间。
2).但是如果变成下面的代码,就不会消耗时间了:
if(logger.isDebugEnabled()) { logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i])); }
如果debug模式关闭,就不会消耗时间,如果debug模式是开放的,就会消耗时间。从而提高了效率
3).使用Logback中的字符串的占位符:
在logback中占位符是一对花括号:【{}】.
对于:
Object entry = new SomeObject(); logger.debug("The entry is {}.", entry);
如果日志需要的打印的话,就会将{}变成对应的变量的值。如果不需要打印的话,他也不会消耗时间。如同加上了
if(logger.isDebugEnabled()) {
这句话。提高了效率。
4)当然也可有多个变量的值:
logger.debug("The new entry is {}. It replaces {}.", entry, oldEntry);
Object[] paramArray = {newVal, below, above}; logger.debug("Value {} was inserted between {} and {}.", paramArray);
5)所以,在打印日志时:为了提高效率:有两种方式:
①加上logger.isDebugEnabled()或者logger.isInfoEnable()等等
②使用占位符。
----------------------------------------------------------------------------------------------------
下面是一个示例:打开debug
bean属性拷贝
Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
cglib是最快的
如果是mapping映射使用: orika
另外还可以使用springside4(各种优秀框架集成)