Я извлекаю .8
миллион записей за один раз (это однократный процесс) из mongodb
с использованием pymongo
и выполняю над ним какую-то операцию.
Мой код выглядит так, как показано ниже.
proc = []
for rec in cursor: # cursor has .8 million rows
print cnt
cnt = cnt + 1
url = rec['urlk']
mkptid = rec['mkptid']
cii = rec['cii']
#self.process_single_layer(url, mkptid, cii)
proc = Process(target=self.process_single_layer, args=(url, mkptid, cii))
procs.append(proc)
proc.start()
# complete the processes
for proc in procs:
proc.join()
process_single_layer
- это функция, которая в основном загружает urls
.из облака и хранит локально.
Теперь проблема в том, что процесс загрузки идет медленно, так как он должен попасть в URL.А так как записи огромны для обработки 1 тыс. Строк, это занимает 6 минут.
Чтобы сократить время, которое я хотел реализовать Multiprocessing
.Но трудно увидеть разницу с приведенным выше кодом.
Пожалуйста, предложите мне, как я могу улучшить производительность в этом сценарии.