由于在项目中用到bean属性复制,之前没太注意效率问题,直到在项目中使用后出现了性能问题,才发现各种拷贝的性能之差别。
cglib 的 BeanCopier、spring 的 BeanUtil和apache 的 BeanUtils在做属性拷贝时,性能的高低依次为:
BeanCopier > BeanUtil > BeanUtils
所以,在项目中使用时优先使用cglib 的 BeanCopier、其次是spring 的 BeanUtil,最后才考虑apache 的BeanUtils。
性能测试时耗时记录:
cglib BeanCopier 13ms
spring BeanUtil 4293ms
apach BeanUtils 18791ms
当时在项目中是在一个for循环中做属性拷贝,导致了性能问题。用的是apach的BeanUtils。从上面的测试可以看出其对性能的影响。
原文引用:http://qhxn-328-liaozx.blog.163.com/blog/static/8760673201311267291407
时间:2013-12-26 19:33:50