Это занимает меня до часа, чтобы прочитать структуру данных графика в 1 гигабайте NetworkX, используя cPickle (его 1 ГБ при хранении на диске в виде двоичного файла pickle).
Обратите внимание, что файл быстро загружается в память. Другими словами, если я запустил:
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), так и, похоже, не имеет большого значения, какой протокол я использую. Также обратите внимание, что хотя я использую вышеприведенную функцию "load" (что означает "load string" ), она загружает двоичные данные, а не ascii-данные.
У меня есть 128 ГБ ОЗУ в системе, которую я использую, поэтому я надеюсь, что кто-то скажет мне, как увеличить некоторый буфер чтения, зарытый в реализации рассола.