Код: Выделить всё
import numpy as np
import pickle
class Data(object):
def __init__(self):
self.a = np.zeros((100, 37000, 3), dtype=np.float32)
d = Data()
print("data size: ", d.a.nbytes / 1000000.0)
print("highest protocol: ", pickle.HIGHEST_PROTOCOL)
pickle.dump(d, open("noProt", "w"))
pickle.dump(d, open("prot0", "w"), protocol=0)
pickle.dump(d, open("prot1", "w"), protocol=1)
pickle.dump(d, open("prot2", "w"), protocol=2)
out >> data size: 44.4
out >> highest protocol: 2
- : 177,6 МБ
Код: Выделить всё
noProt - : 177,6 МБ
Код: Выделить всё
prot0 - : 44,4 МБ
Код: Выделить всё
prot1 - : 44,4 МБ
Код: Выделить всё
prot2
Думаю, протокол 0 — это протокол 0, заданный по умолчанию.
Интересно, в чем разница между протоколами 1 и 2, есть ли причина, по которой мне следует выбрать тот или иной?
Что лучше использовать: Pickle или cPickle?
Подробнее здесь: https://stackoverflow.com/questions/235 ... col-choice
Мобильная версия