成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java Bean Copy 性能大比拼

lentoo / 3336人閱讀

摘要:性能大比拼簡(jiǎn)介拷貝在工作中被大量使用,可以大幅度的提高工作量。本文對(duì)常用的工具進(jìn)行了壓力測(cè)試,方便大家選擇更加適合自己的工具。本篇文章是增強(qiáng)介紹續(xù)篇,該專欄會(huì)持續(xù)更新,感興趣的朋友請(qǐng)訂閱我們。的表現(xiàn)反而比更好,可能是模型不一樣導(dǎo)致的。

Java Bean Copy 性能大比拼

簡(jiǎn)介

Bean 拷貝在工作中被大量使用,可以大幅度的提高工作量。本文對(duì)常用的 Bean copy 工具進(jìn)行了壓力測(cè)試,方便大家選擇更加適合自己的工具。本篇文章是mica cglib 增強(qiáng)——【01】cglib bean copy 介紹 續(xù)篇,該專欄會(huì)持續(xù)更新,感興趣的朋友請(qǐng)訂閱我們。

bean 拷貝工具

MapStruct (編譯期生成 Mapper 實(shí)現(xiàn))

Selma (編譯期生成 Mapper 實(shí)現(xiàn))

yangtu222 - BeanUtils (第一次生成 copy 實(shí)現(xiàn)字節(jié)碼)

mica (第一次生成 copy 實(shí)現(xiàn)字節(jié)碼)

hutool (反射)

模型

無(wú)類型轉(zhuǎn)換
/**
 * 來(lái)源用戶
 *
 * @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;
}

/**
 * 轉(zhuǎn)換的用戶
 *
 * @author L.cm
 */
@Data
public class ToUser {
    private String nickName;
    private String phone;
    private String email;
    private Integer gender;
    private String avatar;
}

帶類型轉(zhuǎn)換
/**
 * 附帶類型轉(zhuǎn)換的 用戶模型
 *
 * @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;
}

/**
 * 附帶類型轉(zhuǎn)換的 用戶模型
 *
 * @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 壓測(cè)結(jié)果

環(huán)境

OS: macOS Mojave

CPU: 2.8 GHz Intel Core i5

RAM: 8 GB 1600 MHz DDR3

JVM: Oracle 1.8.0_201 64 bits

簡(jiǎn)單模型
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

附帶類型轉(zhuǎn)換(日期)
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

列表模型(100 item)
Benchmark Mode Cnt Score Error Units
springBeanCopy thrpt 5 35.974 ± 0.555 ops/ms
micaBeanCopy thrpt 5 169.066 ± 5.460 ops/ms

Map 拷貝到 bean
Benchmark Mode Cnt Score Error Units
hutoolBeanCopy thrpt 5 1338.551 ± 16.746 ops/ms
micaBeanCopy thrpt 5 13577.056 ± 27.795 ops/ms

結(jié)論

和 java-object-mapper-benchmark 測(cè)試結(jié)果有些出入。

Selma 的表現(xiàn)反而比 MapStruct 更好,可能是模型不一樣導(dǎo)致的。

功能比較
工具包 需要編寫Mapper 支持Map 支持List、Set 類型轉(zhuǎn)換 性能
Selma 需要手寫轉(zhuǎn)換 極高
MapStruct 支持常用類型和復(fù)雜表達(dá)式 極高
BeanUtils(yangtu222) 需要手寫轉(zhuǎn)換 極高
mica 是用 Spring 的類型轉(zhuǎn)換 極高
Spring 不支持
hutool 不支持

鏈接

本項(xiàng)目源碼:https://github.com/lets-mica/mica-jmh

開源推薦

Spring boot 微服務(wù)高效開發(fā)?mica?工具集:https://gitee.com/596392912/mica

Avue?一款基于vue可配置化的神奇框架:https://gitee.com/smallweigit/avue

pig?宇宙最強(qiáng)微服務(wù)(架構(gòu)師必備):https://gitee.com/log4j/pig

SpringBlade?完整的線上解決方案(企業(yè)開發(fā)必備):https://gitee.com/smallc/SpringBlade

IJPay?支付SDK讓支付觸手可及:https://gitee.com/javen205/IJPay

關(guān)注我們

掃描上面二維碼,更多精彩內(nèi)容每天推薦!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73982.html

相關(guān)文章

  • 2017年前端框架、類庫(kù)、工具大比

    摘要:相比于開發(fā)人員的數(shù)量,目前框架類庫(kù)和工具的數(shù)量似乎更多一些。本文將會(huì)討論目前最為流行的客戶端框架類庫(kù)和工具以及它們之間的基本差異。典型的類庫(kù)包括字符串處理日期元素事件動(dòng)畫網(wǎng)絡(luò)請(qǐng)求等功能。所以不需要明確的區(qū)分類庫(kù)框架和工具。 相比于JavaScript開發(fā)人員的數(shù)量,目前JavaScript框架、類庫(kù)和工具的數(shù)量似乎更多一些。截至2017年5月,GitHub上的快速搜索顯示,有超過(guò)110...

    Alliot 評(píng)論0 收藏0
  • 前端技術(shù)能力大比(第五期)

    摘要:活動(dòng)獎(jiǎng)勵(lì)本次活動(dòng)計(jì)劃評(píng)出前三名,均為葡萄城定制獎(jiǎng)品第一名葡萄城定制馬克杯第二名葡萄城定制魔方第三名葡萄城定制筆記本中性筆 參賽條件 不限人群,只要加入前端技術(shù)交流群(720389894),都可進(jìn)行在線答題showImg(https://segmentfault.com/img/bVbqcUi?w=798&h=300); 活動(dòng)流程 1、 在線答題:詳情見下方活動(dòng)方式2、 題目...

    zhangke3016 評(píng)論0 收藏0
  • 前端技術(shù)能力大比(第五期)

    摘要:活動(dòng)獎(jiǎng)勵(lì)本次活動(dòng)計(jì)劃評(píng)出前三名,均為葡萄城定制獎(jiǎng)品第一名葡萄城定制馬克杯第二名葡萄城定制魔方第三名葡萄城定制筆記本中性筆 參賽條件 不限人群,只要加入前端技術(shù)交流群(720389894),都可進(jìn)行在線答題showImg(https://segmentfault.com/img/bVbqcUi?w=798&h=300); 活動(dòng)流程 1、 在線答題:詳情見下方活動(dòng)方式2、 題目...

    jerryloveemily 評(píng)論0 收藏0
  • 云計(jì)算CRM大比 七大巨頭你選誰(shuí)

    摘要:微軟產(chǎn)品管理事業(yè)部總經(jīng)理表示,這項(xiàng)優(yōu)惠服務(wù)將持續(xù)到年月日。表示,目前,其價(jià)格是每個(gè)月每個(gè)用戶美元。青睞云計(jì)算嗎這家企業(yè)應(yīng)用軟件領(lǐng)域的巨頭進(jìn)入這個(gè)市場(chǎng)也許有點(diǎn)晚了,但除了參與其中別無(wú)選擇,但是表現(xiàn)似乎還不錯(cuò)。 ???????Salesforce.com、甲骨文、微軟、SAP及另外眾多廠商在提供云CRM(客戶關(guān)系管理)服務(wù)。圍繞云計(jì)算的炒作無(wú)所不在,想必大家都聽到過(guò)云計(jì)算。弗雷斯特調(diào)研公司預(yù)測(cè),...

    zsirfs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<