解编码框架的比较(protobuf,thrift,Marshalling,xml)
1.ProtoBuf
特点:
1.结构化数据存储格式
2.高效的解编码性能。
3.语言无关,平台无关,扩展性好。
4.官方支持java,c++,python三种语言。
5.性能比较好
(与之对比xml的重大缺点:xml的解析时间开销和xml为了可读性而牺牲的空间开销都非常大,所以xml不适合做高性能通协议,proto使用二进制编码,在空间和性能上有很大优势)
5.protobuf有数据描述文件与代码生成机制,文本化的数据描述语言,可以实现语言与平台无关。
6.通过标识字段的顺序,可以实现协议的向前兼容。
7.代码自动生成。
8.结构化的文档更容易管理和维护。
2.Thirft
Thirft源自FaceBook,可以作为高性能通信的中间件使用,支持数据序列化和多种类型的RPC服务。thirft适用于静态的数据交换,数据结构发生变化时,需要重新编译IDL文件(protobuf就不需要这样)性能测试感觉稍稍比protobuf好一些。
3.Marshualling
JBoss的marshalling是一个java对象的序列化API包,修正了JDK自带的序列化包的很多问题,但又保持跟java.io.Serializable接口的兼容。
相对于传统的java序列化机制,优点是
1.可插拔的类解析器,通过一个接口即可实现定制。
2.可插拔的对象替换技术,不需要通过继承的方式。
3.无需实现java.io.Serializable接口,即可实现java序列化。
通过缓存技术提供对象的序列化性能。
4.JBoss Marshalling更多在JBoss内部使用,应用范围有限。
xml
1.易读,好理解。
2.性能很差。
解编码框架的比较(protobuf,thrift,Marshalling,xml)的更多相关文章
- HEVC学习之一编码框架
接触H265时间不是很长,看了一些东西,但是一直没有时间静下心来整理.H265的学习主要是参考万帅.杨付正的<新一代高效视频编码 H265/HEVC 原理.标准与实现>移书,这本书对H26 ...
- 详解Executor框架
在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...
- MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...
- 详解工作流框架Activiti的服务架构和组件
摘要:通过这篇文章,可以对工作流有一个基本的认识,为后续工作流框架Activiti的学习打下坚实的基础. 本文分享自华为云社区<BPMN工作流的基本概念!详解工作流框架Activiti的服务架构 ...
- 根据框架的dtd或xsd生成xml文件
下载Schema文件 首先要下载框架官网下的xsd或者xml文件,例如Spring官网地址,schema里面的就是xsd文件 Myeclipse中配置 我用的Myeclipse纯净版6.5,Windo ...
- RPC 框架之 Goole protobuf
Goole 的 protobuf 即 Protocol Buffers 是一个很好的RPC 框架,支持 c++ python java 接下来进行官方文档的解读,然后你会对protobuf 会有 ...
- JavaWeb配置详解(结合框架SpringMVC)
详解 先说一说常识性的东西,我们的JavaWeb程序运行一开始走的是web.xml文件,这是我们的核心文件,可以说没有web.xml文件我们就无法运行项目,这个文件长什么样子,读者自己新建一个web项 ...
- RPC框架实现(一) Protobuf的rpc实现
概述 RPC框架是云端服务基础框架之一,负责云端服务模块之间的项目调用,类似于本地的函数调用一样方便.常见的RPC框架配带的功能有: 编解码协议.比如protobuf.thrift等等. 服务发现.指 ...
- 详解ABP框架的多租户
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ABP框架对多租户场景提供了很好的支持,内建了多租户的处理机制,今天我们来深入解析一下 ...
随机推荐
- 嵌入式开发之字符叠加---gb2313 国标码,utf8 国际码,unicode 无码
(1)国标码简介 (2)编码转换 (3)时间获取 (4)显示切换 最近做了个字符叠加,包括时间叠加,字符中文叠加,位置移动,等功能开启.因为一般的字符叠加的点阵式16位,然后填充着16位的编码是gb2 ...
- db2 error
DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;MCD_BJ.MTL_CHANNEL_DEF, DRIVER=4.18.60 你的表处于 ...
- 阿里云服务器---centos编译安装ffmpeg
环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...
- pdf文件编辑
下载软件:Foxit PDF Editor,这个工具挺好用的,可以对pdf文件内容进行编辑 Foxit PDF Editor 是第一个真正的PDF文件编辑软件.许多人都希望能找到一个象编辑其它类型的文 ...
- .net Socket编程
1. 什么是TCP/IP.UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗? 什么是TCP/IP.U ...
- Mac Python建立简单的本地服务器
由于Mac自带Python 所以省去我们去下载了 打开终端 执行python stm-macmini:~ apple$ pythonPython 2.7.10 (default, Jul 14 20 ...
- python 文字识别 之 pytesseract
pytesseract资源 链接:https://pan.baidu.com/s/1eTsqhsY 密码:j0yo 安装时前面一直next就可以了,直到这一步,勾选Math和Chinese,支持计算和 ...
- 大组合数取模之lucas定理模板,1<=n<=m<=1e9,1<p<=1e6,p必须为素数
typedef long long ll; /********************************** 大组合数取模之lucas定理模板,1<=n<=m<=1e9,1&l ...
- codevs 必做:2776、1222
2776 寻找代表元 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 广州二中苏元实验学校一共有n个社团,分 ...
- Collect More Jewels(hdu1044)(BFS+DFS)
Collect More Jewels Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...