繁体   English   中英

阅读pickle在Python 3.6中比在Python 2.7中表现更差

[英]Reading pickle performs worse in Python 3.6 than in Python 2.7

我注意到我的代码中的pickle读取部分在Python 3.6中的执行速度比在Python 2.7中慢。 这不是一个真正的问题,但我很好奇是什么导致它/如果有任何解释这种差异。 我在两个版本中都使用了以下脚本来说明差异。 在这里,导入一个pickle,然后保存为包含14804726行和10列的数据帧:

import pandas as pd
import time

timestart=time.time()
picklefile=r'C:\Users\Me\rawdata.pkl'  
rawdata = pd.read_pickle(picklefile)

print(time.time()-timestart)

其中给出了以下时间输出:

>>>Output 2.7.14: 14.9129998684
>>>Output 3.6.4: 60.39831018447876

当你在Python 3中阅读Python 2 pickle时,它必须对字符串执行转换

在Python 2中,字符串表示为简单的字节流; 在Python 3中使用的是unicode表示,它能够表示更广泛的字符。 当您在Python 3中加载Python 2 pickle时,它必须将一种格式转换为另一种格式。

这很可能会减慢你的负荷。

另请注意,默认情况下执行的转换可能不适合您的使用,您可能希望向负载添加其他参数以确保应用正确的编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM