文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
Fury是一个基于JIT动态编译的多语言原生序列化框架 , 支持Java/Python/Golang/C++等语言 , 提供全自动的对象多语言/跨语言序列化能力 , 以及相比于别的框架最高20~200倍的性能 。
引言 过去十多年大数据和分布式系统蓬勃发展 , 序列化是其频繁使用的技术 。 当对象需要跨进程、跨语言、跨节点传输、持久化、状态读写时 , 都需要进行序列化 , 其性能和易用性影响着系统的运行效率和开发效率 。
对于Java序列化 , 尽管Kryo[1
等框架提供了相比JDK序列化数倍的性能 , 对于高吞吐、低延迟、大规模数据传输场景 , 序列化仍然是整个系统的性能瓶颈 。 为了优化序列化的性能 , 分布式系统如Spark[2
、Flink[3
使用了专有行列存二进制格式如tungsten[4
和arrow[5
。 这些格式减少了序列化开销 , 但增加了系统的复杂性 , 牺牲了编程的灵活性 , 同时也只覆盖了SQL等关系代数计算专有场景 。 对于通用分布式编程和跨进程通信 , 序列化性能始终是一个绕不过去的关键问题 。
同时随着计算和应用场景的日益复杂化 , 系统已经从单一语言的编程范式发展到多语言融合编程 , 对象在语言之间传输的易用性影响着系统开发效率 , 进而影响业务的迭代效率 。 而已有的跨语言序列化框架protobuf/flatbuffer/msgpack等由于无法支持引用、不支持Zero-Copy、大量手写代码以及生成的类不符合面向对象设计[6
无法给类添加行为 , 导致在易用性、灵活性、动态性和性能上的不足 , 并不能满足通用跨语言编程需求 。
基于此 , 我们开发了Fury , 通过一套支持引用、类型嵌入的语言无关协议 , 以及JIT动态编译加速、缓存优化和Zero-Copy等技术 , 实现了任意对象像动态语言自动序列化一样跨语言自动序列化 , 消除了语言之间的编程边界 , 并提供相比于业界别的框架最高20~200倍的性能 。
Fury是什么 Fury是一个基于JIT的高性能多语言原生序列化框架 , 专注于提供极致的序列化性能和易用性:
支持主流编程语言如Java/Python/C++/Golang , 其它语言可轻易扩展; 多语言/跨语言自动序列化任意对象 , 无需创建IDL文件、手动编译schema生成代码以及将对象转换为中间格式; 多语言/跨语言自动序列化共享引用和循环引用 , 用户只需要关心对象 , 不需要关心数据重复或者递归错误; 基于JIT动态编译技术在运行时自动生成序列化代码优化性能 , 增加方法内联、代码缓存和死代码消除 , 减少虚方法调用/条件分支/Hash查找/元数据写入等 , 提供相比其它序列化框架20~200倍以上的性能; Zero-Copy序列化支持 , 支持Out of band序列化协议 , 支持堆外内存读写; 提供缓存友好的二进制随机访问行存格式 , 支持跳过序列化和部分序列化 , 并能和列存自动互转; 除了跨语言能力 , Fury还具备以下能力:
- 百度|“萝卜快跑”无人车出车祸 后轮被撞掉!官方回应:后车追尾
- 作为国内高新技术企业、两轮绿色能源网络布局的先行者|易马达重磅推出新国标智能换电车
- 百度|百度“萝卜快跑”无人车出车祸 后轮被撞掉
- 天使轮|36氪独家 | 天使轮红杉、云九、StarVC、高瓴同投,「光线云」再获前海基金Pre-A轮投资,全球首款云原生实时渲染引擎
- 3D打印|成立1年完成3轮融资,这家中国食品3D打印公司,为什么这么吃香?
- 阿斯麦尔|风水轮流转!ASML就我国发声,外媒:可以用EUV光刻机换
- 童文红|李楠这下放心了?怒喵科技获千万融资:投资方为联想创投
- 折叠屏|新一轮名单出炉,华为Harmony OS 3.0尝鲜版,新增17款设备可搭载
- 百度|派学车融资、YY学车倒闭,互联网驾培旱涝两重天
- 本文转自:人民网-湖南频道滑移装载机后轮悬空。|湖南长沙:聚焦工程机械 擦亮“智造之城”名片