我正在挑选一个python datetime
通过celery传递给任务,并且遇到了内存问题。我想找到一种方法来确定酸洗datetime
对象的结果大小,以便我可以将它与pickle unix时间戳进行比较。我意识到时间戳会更小,但我特别想比较两个腌制对象的大小。
答案 0 :(得分:1)
一个pickle对象只是一个字节数组(想想ASCII编码的字符串)。因此,使用dumps
来获取字节并查看长度。在我的机器上,一个pickle datetime
是44个字节。这包括一些开销,例如,它将包括指示pickle协议版本的头部。
import datetime
import pickle
dt = datetime.datetime.now()
size = len(pickle.dumps(dt))
print(size, 'bytes')
此外,如果使用更高的协议,则生成的pickle对象应该更小。在protocol=pickle.HIGHEST_PROTOCOL
中尝试dump
。