摘要:性能大比拼简介拷贝在工作中被大量使用,可以大幅度的提高工作量。本文对常用的工具进行了压力测试,方便大家选择更加适合自己的工具。本篇文章是增强介绍续篇,该专栏会持续更新,感兴趣的朋友请订阅我们。的表现反而比更好,可能是模型不一样导致的。
Java Bean Copy 性能大比拼 简介
Bean 拷贝在工作中被大量使用,可以大幅度的提高工作量。本文对常用的 Bean copy 工具进行了压力测试,方便大家选择更加适合自己的工具。本篇文章是mica cglib 增强——【01】cglib bean copy 介绍 续篇,该专栏会持续更新,感兴趣的朋友请订阅我们。
bean 拷贝工具MapStruct (编译期生成 Mapper 实现)
Selma (编译期生成 Mapper 实现)
yangtu222 - BeanUtils (第一次生成 copy 实现字节码)
mica (第一次生成 copy 实现字节码)
hutool (反射)
模型 无类型转换/** * 来源用户 * * @author L.cm */ @Data public class FormUser { private Long id; private String nickName; private Integer age; private String phone; private String email; private String password; private Integer gender; private String avatar; } /** * 转换的用户 * * @author L.cm */ @Data public class ToUser { private String nickName; private String phone; private String email; private Integer gender; private String avatar; }带类型转换
/** * 附带类型转换的 用户模型 * * @author L.cm */ @Data @Accessors(chain = true) public class FormConvertUser { private Long id; private String nickName; private Integer age; private String phone; private String email; private String password; private Integer gender; private String avatar; @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) private LocalDateTime birthday; } /** * 附带类型转换的 用户模型 * * @author L.cm */ @Data @Accessors(chain = true) public class ToConvertUser { private String nickName; private Integer age; private String phone; private String email; private String password; private Integer gender; private String avatar; private String birthday; }Bean copy 压测结果 环境
OS: macOS Mojave
CPU: 2.8 GHz Intel Core i5
RAM: 8 GB 1600 MHz DDR3
JVM: Oracle 1.8.0_201 64 bits
简单模型Benchmark | Mode | Cnt | Score | Error | Units |
---|---|---|---|---|---|
hutoolBeanCopy | thrpt | 5 | 1939.092 ± | 26.747 | ops/ms |
springBeanCopy | thrpt | 5 | 3569.035 ± | 39.607 | ops/ms |
cglibBeanCopy | thrpt | 5 | 9112.785 ± | 560.503 | ops/ms |
micaBeanCopy | thrpt | 5 | 17753.409 ± | 393.245 | ops/ms |
yangtu222BeanCopy | thrpt | 5 | 18201.997 ± | 119.189 | ops/ms |
cglibMapperBeanCopy | thrpt | 5 | 37679.510 ± | 3544.624 | ops/ms |
mapStructBeanCopy | thrpt | 5 | 50328.045 ± | 529.707 | ops/ms |
selmaBeanCopy | thrpt | 5 | 200859.561 ± | 2370.531 | ops/ms |
Benchmark | Mode | Cnt | Score | Error | Units |
---|---|---|---|---|---|
micaBeanCopy | thrpt | 5 | 1186.375 ± | 64.686 | ops/ms |
mapStructBeanCopy | thrpt | 5 | 1623.478 ± | 13.894 | ops/ms |
selmaBeanCopy | thrpt | 5 | 160020.595 ± | 2570.747 | ops/ms |
Benchmark | Mode | Cnt | Score | Error | Units |
---|---|---|---|---|---|
springBeanCopy | thrpt | 5 | 35.974 ± | 0.555 | ops/ms |
micaBeanCopy | thrpt | 5 | 169.066 ± | 5.460 | ops/ms |
Benchmark | Mode | Cnt | Score | Error | Units |
---|---|---|---|---|---|
hutoolBeanCopy | thrpt | 5 | 1338.551 ± | 16.746 | ops/ms |
micaBeanCopy | thrpt | 5 | 13577.056 ± | 27.795 | ops/ms |
和 java-object-mapper-benchmark 测试结果有些出入。
Selma 的表现反而比 MapStruct 更好,可能是模型不一样导致的。
功能比较工具包 | 需要编写Mapper | 支持Map | 支持List、Set | 类型转换 | 性能 |
---|---|---|---|---|---|
Selma | 是 | 否 | 否 | 需要手写转换 | 极高 |
MapStruct | 是 | 否 | 否 | 支持常用类型和复杂表达式 | 极高 |
BeanUtils(yangtu222) | 否 | 否 | 是 | 需要手写转换 | 极高 |
mica | 否 | 是 | 是 | 是用 Spring 的类型转换 | 极高 |
Spring | 否 | 否 | 否 | 不支持 | 高 |
hutool | 否 | 是 | 否 | 不支持 | 高 |
本项目源码:https://github.com/lets-mica/mica-jmh
开源推荐Spring boot 微服务高效开发 mica 工具集:https://gitee.com/596392912/mica
Avue 一款基于vue可配置化的神奇框架:https://gitee.com/smallweigit/avue
pig 宇宙最强微服务(架构师必备):https://gitee.com/log4j/pig
SpringBlade 完整的线上解决方案(企业开发必备):https://gitee.com/smallc/SpringBlade
IJPay 支付SDK让支付触手可及:https://gitee.com/javen205/IJPay
关注我们扫描上面二维码,更多精彩内容每天推荐!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73982.html
摘要:相比于开发人员的数量,目前框架类库和工具的数量似乎更多一些。本文将会讨论目前最为流行的客户端框架类库和工具以及它们之间的基本差异。典型的类库包括字符串处理日期元素事件动画网络请求等功能。所以不需要明确的区分类库框架和工具。 相比于JavaScript开发人员的数量,目前JavaScript框架、类库和工具的数量似乎更多一些。截至2017年5月,GitHub上的快速搜索显示,有超过110...
摘要:活动奖励本次活动计划评出前三名,均为葡萄城定制奖品第一名葡萄城定制马克杯第二名葡萄城定制魔方第三名葡萄城定制笔记本中性笔 参赛条件 不限人群,只要加入前端技术交流群(720389894),都可进行在线答题showImg(https://segmentfault.com/img/bVbqcUi?w=798&h=300); 活动流程 1、 在线答题:详情见下方活动方式2、 题目...
摘要:活动奖励本次活动计划评出前三名,均为葡萄城定制奖品第一名葡萄城定制马克杯第二名葡萄城定制魔方第三名葡萄城定制笔记本中性笔 参赛条件 不限人群,只要加入前端技术交流群(720389894),都可进行在线答题showImg(https://segmentfault.com/img/bVbqcUi?w=798&h=300); 活动流程 1、 在线答题:详情见下方活动方式2、 题目...
摘要:微软产品管理事业部总经理表示,这项优惠服务将持续到年月日。表示,目前,其价格是每个月每个用户美元。青睐云计算吗这家企业应用软件领域的巨头进入这个市场也许有点晚了,但除了参与其中别无选择,但是表现似乎还不错。 Salesforce.com、甲骨文、微软、SAP及另外众多厂商在提供云CRM(客户关系管理)服务。围绕云计算的炒作无所不在,想必大家都听到过云计算。弗雷斯特调研公司预测,...
阅读 733·2023-04-25 17:33
阅读 3594·2021-07-29 14:49
阅读 2464·2019-08-30 15:53
阅读 3412·2019-08-29 16:27
阅读 1978·2019-08-29 16:11
阅读 994·2019-08-29 14:17
阅读 2407·2019-08-29 13:47
阅读 1993·2019-08-29 13:28