总之网站上说得很好啦:http://msgpack.org/,又快,生成的文件又小等等,总之就是很牛逼的救世主咯

因为忍受不了 pickle 的速度,所以尝试切换一下。

import pickle
import msgpack
import gca = list(range(10000*10000))def dump1():with open('1', 'wb') as f:pickle.dump(a, f)def dump2():with open('2', 'wb') as f:msgpack.dump(a, f)def dump3():gc.disable()with open('2', 'wb') as f:msgpack.dump(a, f)gc.enable()

然后测速,有 dump3 的原因是官方网站说关闭gc有奇效:

CPython's GC starts when growing allocated object. This means unpacking may cause useless GC. You can use gc.disable() when unpacking large message.

恩,先看测试结果(测试了10次):

dump1: 1 loop, best of 3: 3.98 s per loop
dump2: 1 loop, best of 10: 5.22 s per loop
dump3: 1 loop, best of 10: 5.13 s per loop

恩,彻底打脸了。关闭gc也没有奇效。

然后看dump出来的文件 (=,=b):

-rw-r--r--  1 chendx  staff   477M  8 11 18:43 1
-rw-r--r--  1 chendx  staff   477M  8 11 18:49 2

恩,浪费我的时间……


然后不死心

def load1():with open('1', 'rb') as f:pickle.load(f)def load2():with open('2', 'rb') as f:msgpack.load(f)

结果(还是10次)

load1: 1 loop, best of 10: 6.78 s per loop
load2: 1 loop, best of 10: 5.91 s per loop

恩,真是鸡肋啊

看我打脸Message Pack相关推荐

  1. Android Message解析

    在android的消息机制中,Message其充当着信息载体的一个角色,通俗的来说,我们看作消息机制就是个工厂的流水线,message就是流水线上的产品,messageQueue就是流水线的传送带.之 ...

  2. Tkinter教程之Message篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811326 '''Tkinter教程之Message篇''' #Message也是用来显示文本 ...

  3. 「带着问题看Handler」

    「带着问题看Handler」 一.写在前面 Android系统在设计之初被设计成单线程模型,其实不仅仅是Android,像Java Swing都使用了单线程模型,这也是有历史原因的.回到Android ...

  4. android message的作用,Android消息机制之Message解析(面试)

    在android的消息机制中,Message其充当着信息载体的一个角色,通俗的来说,我们看作消息机制就是个工厂的流水线,message就是流水线上的产品,messageQueue就是流水线的传送带.之 ...

  5. php 解决方案,php优化解决方案

    php优化 本帖最后由 xuzuning 于 2013-09-30 13:05:14 编辑 //define server info begin $servername = "192.168 ...

  6. 快速序列化组件MessagePack介绍

    简介 MessagePack for C#(MessagePack-CSharp)是用于C#的极速MessagePack序列化程序,比MsgPack-Cli快10倍,与其他所有C#序列化程序相比,具有 ...

  7. ktor框架用到了netty吗_Netty系列相关面试题汇总

    Netty是一个高性能的框架,使用的地方非常多,面试题也经常提问.本套题来源比较多,最主要的来源是ThinkWon,地址是https://thinkwon.blog.csdn.net/article/ ...

  8. Java架构师面试之Netty面试专题及答案(共10题,含详细解答)

    [Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...

  9. Netty面试题和答案

    Netty面试题和答案 1.BIO. NIO 和 AIO 的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理.线 程开销大. 伪异步 IO:将请求连接放入线程池, ...

最新文章

  1. 面试官三连问:你这个数据量多大?分库分表怎么做?用的哪个组件?
  2. Gartner:2018年十大科技趋势与其对IT和执行的影响
  3. Myeclipse常用快捷键
  4. 快速排序的递归和非递归
  5. OpenCV信息流Alpha遮罩
  6. Docker入门(CentOS7)
  7. 湖北大学 计算机考研,湖北大学考研难吗?一般要什么水平才可以进入?
  8. Android自定义事件总线,android事件总线EventBus3.0使用方法详解
  9. 004 Spark中的local模式的配置以及测试
  10. ArcMap基本操作
  11. TeamTalk源码分析(一)—— TeamTalk介绍
  12. 图灵机和冯洛伊曼体系结构
  13. 闪电贷攻击的深层原因:价格预言机操纵攻击
  14. 英特尔第十代处理器为什么不支持win7_10代cpu能不能装win7?10代cpu装win7全面分析(支持十代...
  15. 游戏语音聊天系统完美运营源码,附详尽视频教程
  16. 万字拆解增长的算法:从产品、流量、品牌到文化
  17. 【金融干货】四步教你:开发风控模型?
  18. open-falcon学习总结
  19. 马云:依旧是阿里巴巴的核心人物和精神领袖
  20. 【安装教程】Ubuntu18.04中用CMake-gui安装OpenCV4.1.0和OpenCV_contrib-4.1.0(图文)

热门文章

  1. Symbian S60 签名工具
  2. eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
  3. html5 worker的使用场景
  4. linux下使用yum安装Apache+php+Mysql+phpMyAdmin
  5. 跑步有利于缓解抑郁心情
  6. 使用 Nginx+SpringBoot+Redis 实现负载均衡以及session共享
  7. 只删除字符串前面的‘*’号。
  8. Docker 深入理解概念
  9. mybatis + spring boot + yml 配置,告别XML
  10. 使用RabbitMQ实现延迟任务