У меня уходит до часа, чтобы прочитать структуру данных графа NetworkX объемом 1 гигабайт, используя cPickle (его 1 ГБ, когда он хранится на диске в виде двоичного файла рассылки).
Обратите внимание, что файл быстро загружается в память. Другими словами, если я бегу:
import cPickle as pickle
f = open("bigNetworkXGraph.pickle","rb")
binary_data = f.read() # This part doesn't take long
graph = pickle.loads(binary_data) # This takes ages
Как я могу ускорить эту последнюю операцию?
Обратите внимание, что я попытался собрать данные, используя оба двоичных протокола (1 и 2), и, похоже, не имеет большого значения, какой протокол я использую. Также обратите внимание, что хотя я использую функцию «загрузки» (что означает «строка загрузки») выше, она загружает двоичные данные, а не ascii-data.
У меня 128 ГБ ОЗУ в системе, которую я использую, поэтому я надеюсь, что кто-нибудь подскажет мне, как увеличить некоторый буфер чтения, скрытый в реализации pickle.