摘要:性能大比拼簡介拷貝在工作中被大量使用,可以大幅度的提高工作量。本文對常用的工具進行了壓力測試,方便大家選擇更加適合自己的工具。本篇文章是增強介紹續篇,該專欄會持續更新,感興趣的朋友請訂閱我們。的表現反而比更好,可能是模型不一樣導致的。
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
關注我們掃描上面二維碼,更多精彩內容每天推薦!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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(客戶關系管理)服務。圍繞云計算的炒作無所不在,想必大家都聽到過云計算。弗雷斯特調研公司預測,...
閱讀 766·2023-04-25 17:33
閱讀 3626·2021-07-29 14:49
閱讀 2480·2019-08-30 15:53
閱讀 3432·2019-08-29 16:27
閱讀 2000·2019-08-29 16:11
閱讀 1029·2019-08-29 14:17
閱讀 2431·2019-08-29 13:47
閱讀 2016·2019-08-29 13:28