高性能Java序列化框架Fse發(fā)布

高性能Java序列化框架Fse發(fā)布

[TOC]

使用場景

將Java對象序列化為二進制數據進行保存,以及二進制數據反向序列化為Java對象,在很多場景中都有應用。比如將對象序列化后離線存儲至其他介質,或者存儲于Redis這樣的緩存之中。

目前常見的有幾種框架可以支撐,比如 Hession ,Kryo,Protobuf,JDK原生等。有一些框架需要提前編寫元數據配置文件以支撐跨語言序列化能力,比如 Protobuf 。不過如果團隊的技術棧是統(tǒng)一的 Java 體系的話,則能夠開箱即用的序列化框架使用起來會更加方便一些,特別有些時候對象特別復雜,編寫元數據配置文件也是很繁瑣的一個事情。

Fse 框架正是應用于這樣的場景,不需要編寫元數據配置信息,開箱即用的 Java 序列化框架,對需要序列化的對象沒有任何特殊要求。在性能基準測試中,該框架的性能表現顯著優(yōu)于其他框架,下面是測試對比

image

歡迎加入技術交流群186233599討論交流,也歡迎關注筆者公眾號:風火說。

使用說明

首先在Pom文件中引入依賴,如下

<dependency>
    <groupId>com.jfireframework</groupId>
    <artifactId>fse</artifactId>
    <version>aegean-1.0</version>
</dependency>

API 使用方式如下

Fse fse = new Fse();
TestData data = new TestData();
//創(chuàng)建一個二進制數組容器,用于容納序列化后的輸出。容器大小會在需要時自動擴大,入參僅決定初始化大小。
ByteArray buf = ByteArray.allocate(100);
//執(zhí)行序列化,會將序列化對象序列化到二進制數組容器之中。
fse.serialize(data, buf);
//得到序列化后的二進制數組結果
byte[] resultBytes = buf.toArray();
//清空容器內容,可以反復使用該容器
buf.clear();
//填入數據,準備進行反序列化
buf.put(resultBytes);
TestData result = (TestData) fse.deSerialize(buf);
assertTrue(result.equals(data));

開源地址

Gitee:https://gitee.com/eric_ds/fse

Github:https://github.com/linbin-eric/Fse

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容