MapStruct增强设计

一. 背景

由于每个人对对象映射的使用工具不一致,导致各个应用存在对象映射工具使用混杂多样,没有一个统一对象映射工具去规范使用,各个对象映射的工具性能也参差不齐;有的通过反射实现,比较损耗性能;有的会进行类型自动转换,容易导致数据问题,针对以上的一些问题,对对象映射框架进行一次调研。

二. 对象映射框架性能对比

工具

实现方式

star

最近更新时间

说明

Getter/Setter

getter/setter方法

属性很多时不好维护

Mapstruct

getter/setter方法

6k

2023-02-05

基于JSR269,在在编译期生成对象映射代码

Orika

动态生成字节码

1.2k

2022-07-13

基于javassist生成对象映射字节码,并加载生成的字节码文件

Spring BeanUtils

反射机制

基于Spring反射工具类

BeanCopier

基于ASM的MethodVisitor为field赋值

4.6k

2022-02-08

使用ASM的MethodVisitor直接编写各属性的get/set方法

Dozer

反射机制

2k

2023-01-06

大量反射,主要基于Field.set(obj, obj)为field赋值

Apache BeanUtils

反射机制

236

2023-02-25

ModelMapper

反射机制

2.1k

2022-12-08

1、压测

机器处理器:M1 Pro (10 核中央处理器和16 核图形处理器)

机器内存:32G

平均耗时/吞吐量(JMH基准测试预热3次,每次3秒,真正执行5次,每次3次)

工具

5个线程拷贝1w次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值