簡體   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