协议缓冲区总大?。?~38 字节
MessagePack
二进制表示法(十六进制):
a36a6964000000000a4a6f686e20446f650c6a6f686e646f65406578616d706c652e636f6d042100000005011241313302bdcccc3f0530112434353625029a99993f
信息包总大?。?~34 字节
Binary Representation (Hexadecimal):
3e0000001069640031000a4a6f686e20446f6502656d61696c006a6f686e646f65406578616d706c652e636f6d1000000022616765001f04370e4940
BSON 总大?。?~43 字节
Avro
二进制表示法(十六进制):
0e120a4a6f686e20446f650c6a6f686e646f65406578616d706c652e636f6d049a999940040a020b4108312e3525312e323538323539
Avro 总大?。?~32 字节
文章插图
图片
现在 , 你可能想知道,为什么这些格式中的某些会输出二进制数据,但它们的大小却各不相同 。Avro、MessagePack 和 BSON 等二进制格式具有不同的内部结构和编码机制,这可能导致二进制表示法的差异,即使它们最终表示的是相同的数据 。下面简要介绍一下这些差异是如何产生的:
1. Avro
- Avro 使用模式对数据进行编码,这种模式通常包含在二进制表示法中 。
- Avro 基于模式的编码通过提前指定数据结构 , 实现了高效的数据序列化和反序列化 。
- Avro 的二进制格式设计为自描述格式,这意味着模式信息包含在编码数据中 。这种自描述性使 Avro 能够保持不同版本数据模式之间的兼容性 。
- MessagePack 是一种二进制序列化格式,直接对数据进行编码,不包含模式信息 。
- 它使用长度可变的整数和长度可变的字符串的紧凑二进制表示法,以尽量减少空间使用 。
- MessagePack 不包含模式信息,因此更适用于模式已提前知晓并在发送方和接收方之间共享的情况 。
- BSON 是 JSON 数据的二进制编码,包括每个值的类型信息 。
- BSON 的设计与 JSON 紧密相连,但它增加了二进制数据类型 , 如 JSON 缺乏的日期和二进制数据 。
- 与 MessagePack 一样,BSON 不包括模式信息 。
- Avro 包含模式信息并具有自描述性,因此二进制文件稍大,但与模式兼容 。
- MessagePack 的编码长度可变,因此非常紧凑,但缺乏模式信息 , 因此适用于已知模式的情况 。
- BSON 与 JSON 关系密切 , 并包含类型信息 , 与 MessagePack 等纯二进制格式相比,BSON 的大小会有所增加 。
优化 JSON 性能下面是一些优化 JSON 性能的实用技巧以及代码示例和最佳实践:
1.最小化数据大小
- 使用简短的描述性键名:选择简洁但有意义的键名,以减少 JSON 对象的大小
// Inefficient{"customer_name_with_spaces": "John Doe"}// Efficient{"customerName": "John Doe"}
- 尽可能缩写:在不影响清晰度的情况下,考虑对键或值使用缩写 。
// 效率低{"transaction_type": "purchase"} // 效率高{"txnType": "purchase"}
2.明智使用数组- 尽量减少嵌套:避免深度嵌套数组 , 因为它们会增加解析和遍历 JSON 的复杂性 。
// 效率低{"order": {"items": {"item1": "Product A","item2": "Product B"}}}// 效率高{"orderItems": ["Product A", "Product B"]}
3.优化数字表示法尽可能使用整数:如果数值可以用整数表示,就用整数代替浮点数 。// 效率低{"quantity": 1.0}// 效率高{"quantity": 1}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 能不能用慢跑代替热身?
- 如何用慢食的方法减肥 慢食怎么说
- 江米条的做法,咸江米条的做法
- 过减速带会对汽车有影响,过减速带的时候真的是车速越慢越好
- 娱乐圈的残酷现实,当曹查理见到老去的叶子楣,表示非常失望
- steamdeck游戏下载慢怎么办 steamdeck下载失败问题解决方法
- 哪些防辐射植物效果好 非常有效的防辐射植物
- 慢性阑尾炎可以自愈吗 慢性阑尾炎症状
- 奚贵妃也不容易,婆媳首次见面就被四太当空气,豪门傲慢展现得淋漓尽致
- Json格式弊端及优化方案