日常开发中,我们经常会有将一个java bean的属性拷贝到另一个java bean的需求,一个个set显得水平又太搂,
所以,经常会用到一些工具来进行bean copy。
其中我们常用的工具有apache beanutils、spring beanutils、cglib beancopier、spring beancopier进行拷贝。
但是它们之间有着性能的差异:
工具类 | 10 | 1000 | 10w | 100w |
---|---|---|---|---|
java set | 0 | 1 | 30 | 202 |
cglib BeanCopier | 79 | 63 | 210 | 181 |
spring BeanCopier | 76 | 43 | 73 | 149 |
spring Beanutils | 122 | 231 | 2315 | 18015 |
Apache BeanUtils | 436 | 996 | 12633 | 10w |
总结如下:
java 原生set在10w以下copy速度最好 ,但是随着数量增多,也耗费快速增长
BeanCopier速度第二好,而且相当稳定,随着数量增大,没有大步幅增长
spring beanutils也表现可以,随着数量增大,增长明显
apache beanutils表现最差,不管多少,都表现最差
关于原理下次再更新