
Serialization
文章平均质量分 90
serialization/Deserialization
致守
这个作者很懒,什么都没留下…
展开
-
[转] Protobuf高效结构化数据存储格式
不过好像只能import当前目录及当前目录的子目录中的proto文件,比如import父目录中的文件时编译会报错(Import "../xxxx.proto" was not found or had errors.),使用绝对路径也不行,尚不清楚原因,官方文档说使用 -I=PATH 或者 --proto_path=PATH 来指定import目录,但实际实验结果表明这两种方式指定的是将要编译的proto文件所在的目录,而不是import的文件所在的目录。//输出到string。//从string解析。转载 2022-10-19 17:20:05 · 1136 阅读 · 0 评论 -
Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?
一种 结构化数据 的数据存储格式(类似于XML、Json)Google出品 (开源)proto2和proto3因为proto3还是beta 版,所以本次讲解是proto2在传输数据量较大的需求场景下,比XML、Json更小、更快、使用 & 维护更简单!转载 2022-10-19 17:18:33 · 1069 阅读 · 0 评论 -
Protobuf底层存储原理
message Test1 {optional int32 a = 1;}并设置为a=150,序列化到一个文件中,查看文件,得到下面的二进制:从底层存储的二进制值看出,Protobuf为什么这么快,节省内存了吧。有以上的结果是因为 varints 这个特殊的东东。它可以让已个int数据类型的存储根据值的大小而自动改变存储的字节数。varint 中的每个字节,除了最后一个字节,都有最重要的位集——这表示还会有更多的字节。每个字节的低7位用于存储以7位为一组的数字的两个补码表示形式,最先存储的是最低字节转载 2022-10-19 17:12:06 · 504 阅读 · 0 评论 -
protobuf 编码实现解析(java)
一:protobuf编码基本数据类型 public enum FieldType { DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ), FLOAT (JavaType.FLOAT , WIRETYPE_FIXED32 ), INT64 (JavaType.LONG , WIRETYPE_VARINT ), UINT64 (JavaType.转载 2022-10-19 17:10:41 · 1702 阅读 · 0 评论 -
protobuf详解
protobuf(protocol buffer) 是谷歌内部的混合语言数据标准。通过将结构化的数据进行序列化(串行化),用于通讯协议、数据存储等领域和语言无关、平台无关、可扩展的序列化结构数据格式。我们说的protobuf一种二进制数据交换格式。可以将 C++ 中定义的存储类的内容与二进制序列串相互转换,主要用于数据传输或保存定义了一种源文件,扩展名为.proto(类比.cpp文件),使用这种源文件,可以定义存储类的内容protobuf有自己的编译器protoc,可以将.proto编译成.cc。转载 2022-10-19 16:19:59 · 2435 阅读 · 1 评论 -
Protobuf 使用指南
最近在手撸 IM 系统,关于数据传输格式的选择,犹豫了下,对比了 JSON 和 XML,最后选择了 Protobuf 作为数据传输格式。毕竟 Google 出品,必属精品😂,[官网地址]。好了,舔狗环节结束,关于技术选择,都是需要根据实际的应用场景的,否则都是耍流氓,下文会进行简单的对比,先来看看官网的介绍:他是一种与语言无关、与平台无关,是一种可扩展的用于序列化和结构化数据的方法,常用于用于通信协议,数据存储等。转载 2022-10-19 16:16:05 · 1207 阅读 · 0 评论 -
xml、json、protobuf序列化协议
XML指可扩展标记语言(eXtensibleMarkupLanguage)。是一种通用和重量级的数据交换格式。以文本结构存储。JSON(JavaScriptObjectNotation, JS 对象简谱) 是一种通用和轻量级的数据交换格式。以文本结构存储。是Google的一种独立和轻量级的数据交换格式。以二进制结构进行存储。名词解释:通用:协议是标准的,不同的第三方软件都可以相互进行序列化和反序列化,比如使用cjson序列化后的数据,可以使用jsoncpp反序列化。转载 2022-10-19 16:14:11 · 538 阅读 · 0 评论 -
几种序列化协议的介绍
它基于 ECMAScript (w3c制定的js规范)的一个子集, JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。(deserialization)则是将从网络、磁盘等读取的字节数组还原成原始对象,以便后续业务的进行,一般也将反序列化称为解码(Decode),主要用于网络传输对象的解码,以便完成远程调用。转载 2022-10-19 16:11:36 · 1378 阅读 · 0 评论 -
浅谈protobuf
定义消息:消息的结构体,以message标识。定义接口:接口路径和参数,以service标识。通过protobuf提供的机制,服务端与服务端之间只需要关注接口方法名(service)和参数(message)即可通信,而不需关注繁琐的链路协议和字段解析,极大降低了服务端的设计开发成本。转载 2022-10-19 16:09:42 · 408 阅读 · 0 评论 -
ProtoBuf简介
这篇文章浅显地介绍一下Google的数据序列化协议:ProtoBuf(Protocol Buffers),并通过一个简单的例子,展示如何使用这个协议。转载 2022-10-19 15:56:56 · 172 阅读 · 0 评论 -
C json实战引擎 一 , 实现解析部分,json实战
引言 以前可能是去年的去年,写了一个 c json 解析引擎用于一个统计实验数据项目开发中. 基本上能用. 去年在网上看见了好多开源的c json引擎 .对其中一个比较标准的 cJSON 引擎 深入学习了一下. 以前那个和cJSON对比了一下, 觉得 以前写的那个 优点是 空间小, 速度快, 因为采用的是 用时解析.而cJSON采用的是递归下降分析, 结构也比较转载 2017-05-22 19:37:24 · 699 阅读 · 0 评论 -
Json解析的四种方法
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)。此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便。从IOS5开始,APPLE提供了对json的原生支持(NSJSONSe转载 2017-05-22 15:14:10 · 1035 阅读 · 0 评论