pickle 模块在酸洗时似乎使用了字符串转义字符;这变得低效,例如在 numpy 数组上。考虑以下
z = numpy.zeros(1000, numpy.uint8)
len(z.dumps())
len(cPickle.dumps(z.dumps()))
长度分别为 1133 个字符和 4249 个字符。
z.dumps() 显示类似 "\x00\x00" (字符串中的实际零)的内容,但 pickle 似乎正在使用字符串的 repr() 函数,产生 "'\x00\x00'" (零是 ascii 零)。
即 ("0" in z.dumps() == False) 和 ("0" in cPickle.dumps(z.dumps()) == True)