1).在打印日誌時,咱們能夠使用下面的代碼:html
logger.debug("Entry Number :"+ i + " is "+String.valueOf(entry[i]));spring
這樣作的效率比較低。由於他會遭受到【變量i】和【entry】轉換成一個字符串,而且再加上字符串的拼接。這些時間無論你打印不打印這些日誌都會消耗。app
即有可能你講DEBUG的模式打印的日誌的功能關閉了,可是上面那就話仍是會消耗時間。框架
2).可是若是變成下面的代碼,就不會消耗時間了:ide
if(logger.isDebugEnabled()) { logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i])); }
若是debug模式關閉,就不會消耗時間,若是debug模式是開放的,就會消耗時間。從而提升了效率性能
3).使用Logback中的字符串的佔位符:spa
在logback中佔位符是一對花括號:【{}】.debug
對於:日誌
Object entry = new SomeObject(); logger.debug("The entry is {}.", entry);
若是日誌須要的打印的話,就會將{}變成對應的變量的值。若是不須要打印的話,他也不會消耗時間。如同加上了htm
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複製的幾種框架性能比較(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
cglib是最快的
若是是mapping映射使用: orika
另外還能夠使用springside4(各類優秀框架集成)