测试比json更快更小的二进制数据传输格式Msgpack [pythono MessagePack 版本]

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介:

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来搞的~




181000830.png

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

我的测试服务器:

PowerEdge R720 16G Xeon E5-2603 1.8GHz

081438331.jpg


我的测试代码:


174207800.png


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

175021315.png


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

看到了吧,是14MB左右 ~

175104238.png

我们打开看看 ~

175207796.png

都是二进制的文件 ~


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

175540959.png


测试的结果是:

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

175918413.png


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#让我们来测试json吧~   呼呼
import  msgpack
import  json
import  time
import  random
import  string
import  os
ISOTIMEFORMAT= '%Y-%m-%d %X'
print time.strftime(ISOTIMEFORMAT, time.localtime())
data={}
for  in  range( 1000000 ):
     salt =  '' .join(random.sample(string.ascii_letters + string.digits,  8 ))
     data[i]=salt
d=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())


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

181324930.png

源地址http://rfyiamcool.blog.51cto.com/1030776/1303868


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

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



 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1303868,如需转载请自行联系原作者


相关实践学习
MySQL数据库DTS迁移上云
利用DTS数据迁移工具完成RDS实例间的数据迁移。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
2月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
212 0
|
10月前
|
SQL 监控 搜索推荐
自动化测试平台V1.0版本正式上线啦!
自动化测试平台V1.0版本正式上线啦!
175 0
|
2月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
184 0
|
6天前
|
Web App开发 IDE Java
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
14 2
|
7天前
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
11 0
|
2月前
|
存储 JSON JavaScript
软件测试/测试开发全日制|Pyest结合json实现数据驱动测试
软件测试/测试开发全日制|Pyest结合json实现数据驱动测试
34 0
|
2月前
|
SQL JSON 关系型数据库
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
73 0
|
7月前
|
JSON 前端开发 Java
【SpringMVC】JSON数据传输与异常处理的使用
【SpringMVC】JSON数据传输与异常处理的使用
57 0
|
8月前
|
JSON 前端开发 测试技术
JSON 格式的接口测试流程
在进行JSON格式的接口测试时,需要使用工具发送HTTP请求并获取响应。测试工具可以是单独的测试框架,如 Eolink Apikit。测试人员需要根据接口文档和测试用例编写测试脚本,然后运行测试并分析结果,以确保接口的质量和稳定性。 当我们后端需要从前端拿到这些JSON数据,我们应该如何测试自己的接口呢?今天就来浅浅探讨一下JSON格式接口测试的流程。
75 0
|
8月前
|
JSON IDE 测试技术
软件测试|好用的pycharm插件推荐(二)—— JSON Parser
软件测试|好用的pycharm插件推荐(二)—— JSON Parser
91 0