data = { 'count': 100, 'price': 29832.09, 'desc': 'MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves', 'desc_cn': "MessagePack 是一个高效的二进制序列化格式。它让你像JSON一样可以在各种语言之间交换数据。但是它比JSON更快、更小。小的整数会被编码成一个字节,短的字符串仅仅只需要比它的长度多一字节的大小", 'bool': True }
data = [data for i inrange(10)] json_str = json.dumps(data) print(len(json_str))
msg_str = msgpack.dumps(data) print(len(msg_str))
程序执行结果
8740 6001
msgpack节省了30%的存储空间
4.2.2 序列化速度比较
import msgpack import json import time
data = { 'count': 100, 'price': 29832.09, 'desc': 'MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves', 'desc_cn': "MessagePack 是一个高效的二进制序列化格式。它让你像JSON一样可以在各种语言之间交换数据。但是它比JSON更快、更小。小的整数会被编码成一个字节,短的字符串仅仅只需要比它的长度多一字节的大小", 'bool': True }
data = [data for i inrange(10)] t1 = time.time() for i inrange(100000): json_str = json.dumps(data)
t2 = time.time()
for i inrange(100000): msg_str = msgpack.dumps(data) t3 = time.time()