博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试比json更快更小的二进制数据传输格式Msgpack [pythono MessagePack 版本]
阅读量:5866 次
发布时间:2019-06-19

本文共 1308 字,大约阅读时间需要 4 分钟。

MessagePack简称msgpack,官方网站是http://msgpack.org/ ,代码可以在github上查看 https://github.com/msgpack。

官方介绍是“Extremely efficient object serialization library for cross-language communication.It's like JSON, but very fast and small.”,是一种跨语言的基于二进制的数据格式。

msgpack完全兼容json的数据格式

比json的序列化更省时间和空间

支持很多种语言(python,java,ruby,c,golang。。。。)

从官方的介绍来看,它能够比

google protocol buffers快4倍,比json快10倍多。

好多项目都开始用他,咱们ops界流行的saltstack mq的传输也是用msgpack来搞的~

最近看到golang群里的兄弟们说,msgpack要比json更好更快。。。 这东西我以前用过,但是因为给别人提供http接口的话,用js不好解析。 所以。。。。 我也就放弃使用了。

我的测试服务器:

PowerEdge R720 16G Xeon E5-2603 1.8GHz

我的测试代码:

大量数据下的压力测试的结果~

我把结果重定向到一个文件里面 !!!

看到了吧,是14MB左右 ~

我们打开看看 ~

都是二进制的文件 ~

下面我们再解析json的数据 ~

测试的结果是:

json生成的数据要比msgpack大的多,大整整一倍左右,但是至于时间,真心没看到啥优势。

#让我们来测试json吧~   呼呼import msgpackimport jsonimport timeimport randomimport stringimport osISOTIMEFORMAT='%Y-%m-%d %X'print time.strftime(ISOTIMEFORMAT, time.localtime())data={}for i in range(1000000):    salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))    data[i]=saltd=json.dumps(data)d1=json.loads(d)d2=json.dumps(d)fileHandle = open( 'timejson.txt', 'w' )fileHandle.write(d2)fileHandle.close()print time.strftime(ISOTIMEFORMAT, time.localtime())

这是一个老外的平均测试下的结果~

源地址

官网是用c,java做的测试,他们是编译语言,肯定要比python这类的测试压力更大更精准。 虽然没有强十倍,哪怕一倍的结果,但是好在他的数据量是可以缩小的。

在cs 模式下,用这个来解决文件大小的传输算是不错的方案。

转载地址:http://pjjnx.baihongyu.com/

你可能感兴趣的文章
java向上转型和向下转型
查看>>
前端面试题整理汇总
查看>>
插件化实现Android多主题功能原理剖析
查看>>
JavaScript 变量提升
查看>>
Spring Data JPA(二):SpringBoot集成H2
查看>>
巧用 PHP 数组函数
查看>>
在JS中统计函数执行次数
查看>>
Java 面试题:百度前200页都在这里了
查看>>
iOS 截图的那些事儿
查看>>
网络存储之NAS和SAN的区别
查看>>
SpringBoot全局异常与数据校验
查看>>
源码阅读:SDWebImage(二十)——UIButton+WebCache
查看>>
Python Scrapy 爬虫(四):部署与运行
查看>>
为什么使用servlet&jsp?基本概述
查看>>
斑马为什么有条纹?
查看>>
装饰器与元数据反射(3)参数装饰器
查看>>
七牛云假注销小指南
查看>>
PAT A1015
查看>>
PAT A1081 分数计算
查看>>
热点账户问题和常用解决方案【上】
查看>>