ITPub博客

首页 > IT职业 > IT生活 > Fury 序列化框架的介绍

Fury 序列化框架的介绍

原创 IT生活 作者:元亨利贞 时间:2023-07-30 23:58:05 0 删除 编辑

介绍:

Fury是一个基于JIT动态编译的多语言原生序列化框架,支持Java/Python/Golang/C++等语言,提供全自动的对象多语言/跨语言序列化能力,以及相比于别的框架最高20~200倍的性能。

Fury通过一套支持引用、类型嵌入的语言无关协议,以及JIT动态编译加速、缓存优化和Zero-Copy等技术,实现了任意对象像动态语言自动序列化一样跨语言自动序列化,消除了语言之间的编程边界。

Fury定义和实现了一套序列化的基础能力,基于这套能力能够快速构建不同的多语言序列化协议,并通过编译加速等优化具备高性能。

Fury提供多种二进制协议,包括跨语言对象图协议、原生Java/Python对象图协议、行格式协议等,满足不同场景的需求。

Fury除了跨语言能力,还具备以下能力:无缝替代JDK/Kryo/Hessian等Java序列化框架,支持共享引用和循环引用的Golang序列化框架,支持对象自动序列化的Golang序列化框架。

特点:

Fury支持主流编程语言如Java/Python/C++/Golang/JavaScript,其它语言可轻易扩展;

Fury可以多语言/跨语言自动序列化任意对象,无需创建IDL文件、手动编译schema生成代码以及将对象转换为中间格式;

Fury可以多语言/跨语言自动序列化共享引用和循环引用,不需要关心数据重复或者递归错误;

Fury基于JIT动态编译技术在运行时自动生成序列化代码优化性能,增加方法内联、代码缓存和死代码消除,减少虚方法调用/条件分支/Hash查找/元数据写入等,提供相比其它序列化框架20~200倍以上的性能;

Fury支持Zero-Copy序列化,支持Out of band序列化协议,支持堆外内存读写;

Fury提供缓存友好的二进制随机访问行存格式,支持跳过序列化和部分序列化,并能和列存自动互转。

适用场景:

Fury适用于需要跨进程、跨语言、跨节点传输、持久化、状态读写、复制等场景,其性能和易用性影响运行效率和开发效率。

Fury适用于需要支持对象引用和多态、无需创建IDL文件、手动编译schema生成代码以及将对象转换为中间格式的通用跨语言编程场景。

Fury适用于需要无缝替代JDK/Kryo/Hessian等Java序列化框架,提供高性能RPC调用、数据传输和对象持久化效率的场景。

Fury适用于需要提供缓存友好的二进制随机访问行存格式,支持跳过序列化和部分序列化,适合高性能计算和大规模数据传输场景。

推介文章:

https://mp.weixin.qq.com/s/buuytFU9W6Vg_30WIGWp9w

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024433/viewspace-2967186/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    383
  • 访问量
    247984