高性能Java序列化框架Fse發佈

高性能Java序列化框架Fse發佈

使用場景

將Java對象序列化爲二進制數據進行保存,以及二進制數據反向序列化爲Java對象,在不少場景中都有應用。好比將對象序列化後離線存儲至其餘介質,或者存儲於Redis這樣的緩存之中。java

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

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

歡迎加入技術交流羣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();
//建立一個二進制數組容器,用於容納序列化後的輸出。容器大小會在須要時自動擴大,入參僅決定初始化大小。
ByteArray buf = ByteArray.allocate(100);
//執行序列化,會將序列化對象序列化到二進制數組容器之中。
fse.serialize(data, buf);
//獲得序列化後的二進制數組結果
byte[] resultBytes = buf.toArray();
//清空容器內容,能夠反覆使用該容器
buf.clear();
//填入數據,準備進行反序列化
buf.put(resultBytes);
TestData result = (TestData) fse.deSerialize(buf);
assertTrue(result.equals(data));
複製代碼

開源地址

Gitee:gitee.com/eric_ds/fse性能

Github:github.com/linbin-eric…測試

相關文章
相關標籤/搜索