看我打脸Message Pack
总之网站上说得很好啦: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相关推荐
- Android Message解析
在android的消息机制中,Message其充当着信息载体的一个角色,通俗的来说,我们看作消息机制就是个工厂的流水线,message就是流水线上的产品,messageQueue就是流水线的传送带.之 ...
- Tkinter教程之Message篇
本文转载自:http://blog.csdn.net/jcodeer/article/details/1811326 '''Tkinter教程之Message篇''' #Message也是用来显示文本 ...
- 「带着问题看Handler」
「带着问题看Handler」 一.写在前面 Android系统在设计之初被设计成单线程模型,其实不仅仅是Android,像Java Swing都使用了单线程模型,这也是有历史原因的.回到Android ...
- android message的作用,Android消息机制之Message解析(面试)
在android的消息机制中,Message其充当着信息载体的一个角色,通俗的来说,我们看作消息机制就是个工厂的流水线,message就是流水线上的产品,messageQueue就是流水线的传送带.之 ...
- php 解决方案,php优化解决方案
php优化 本帖最后由 xuzuning 于 2013-09-30 13:05:14 编辑 //define server info begin $servername = "192.168 ...
- 快速序列化组件MessagePack介绍
简介 MessagePack for C#(MessagePack-CSharp)是用于C#的极速MessagePack序列化程序,比MsgPack-Cli快10倍,与其他所有C#序列化程序相比,具有 ...
- ktor框架用到了netty吗_Netty系列相关面试题汇总
Netty是一个高性能的框架,使用的地方非常多,面试题也经常提问.本套题来源比较多,最主要的来源是ThinkWon,地址是https://thinkwon.blog.csdn.net/article/ ...
- Java架构师面试之Netty面试专题及答案(共10题,含详细解答)
[Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...
- Netty面试题和答案
Netty面试题和答案 1.BIO. NIO 和 AIO 的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理.线 程开销大. 伪异步 IO:将请求连接放入线程池, ...
最新文章
- 面试官三连问:你这个数据量多大?分库分表怎么做?用的哪个组件?
- Gartner:2018年十大科技趋势与其对IT和执行的影响
- Myeclipse常用快捷键
- 快速排序的递归和非递归
- OpenCV信息流Alpha遮罩
- Docker入门(CentOS7)
- 湖北大学 计算机考研,湖北大学考研难吗?一般要什么水平才可以进入?
- Android自定义事件总线,android事件总线EventBus3.0使用方法详解
- 004 Spark中的local模式的配置以及测试
- ArcMap基本操作
- TeamTalk源码分析(一)—— TeamTalk介绍
- 图灵机和冯洛伊曼体系结构
- 闪电贷攻击的深层原因:价格预言机操纵攻击
- 英特尔第十代处理器为什么不支持win7_10代cpu能不能装win7?10代cpu装win7全面分析(支持十代...
- 游戏语音聊天系统完美运营源码,附详尽视频教程
- 万字拆解增长的算法:从产品、流量、品牌到文化
- 【金融干货】四步教你:开发风控模型?
- open-falcon学习总结
- 马云:依旧是阿里巴巴的核心人物和精神领袖
- 【安装教程】Ubuntu18.04中用CMake-gui安装OpenCV4.1.0和OpenCV_contrib-4.1.0(图文)
热门文章
- Symbian S60 签名工具
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
- html5 worker的使用场景
- linux下使用yum安装Apache+php+Mysql+phpMyAdmin
- 跑步有利于缓解抑郁心情
- 使用 Nginx+SpringBoot+Redis 实现负载均衡以及session共享
- 只删除字符串前面的‘*’号。
- Docker 深入理解概念
- mybatis + spring boot + yml 配置,告别XML
- 使用RabbitMQ实现延迟任务