BeanCopy几种实现的比较

 

Bean复制的几种框架性能比较

Apache BeanUtilsPropertyUtils,Spring BeanUtils,Cglib BeanCopier

       一个FromBean和一个ToBean,两个的代码基本上一样,除了类名称不一样,所以只是贴出来了一份。

 

public class FromBean {

    private String name;

    private int age;

    private String address;

    private String idno;

    private double money;

 

         省略getset方法……

}

 

  一个用于测试的BenchmarkTest类,为了减少重复代码,写了一个策略模式

 

 策略中使用的接口声明

使用的测试类

 

进行了三次测试,最后的结果如下:

 

 

  1. 从整体的表现来看,CglibBeanCopier的性能是最好的无论是数量较大的1万次的测试,还是数量较少10次,几乎都是趋近与零损耗,
  2. Spring是在次数增多的情况下,性能较好,在数据较少的时候,性能比PropertyUtils的性能差一些。
  3. PropertyUtils的性能相对稳定,表现是呈现线性增长的趋势。而ApacheBeanUtil的性能最差,无论是单次Copy还是大数量的多次Copy性能都不是很好。
  4. PropertyUtils和BeanUtils的功能基本一致,唯一的区别是:BeanUtils在对Bean赋值时会进行类型转化,而PropertyUtils不会对类型进行转化,如果类型不同则会抛出异常!,这可以解释PropertyUtils效率比BeanUtils要高的原因。
  5. 建议:基本类型在源目标类型一致的情况下使用: PropertyUtils效率会更高。
  6. Dozer框架的拷贝,万次内的效率beanutils比dozer要快, 十万次以上的效率beanutils的效率和dozer差不多, 复杂类型的拷贝可以使用: Dozer

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值