【发布时间】:2019-09-02 18:27:04
【问题描述】:
- 我必须遍历一个大型集合 (> 50GB)。
- 我正在使用带有队列的游标和多处理池作为通信工具。
- 速度很慢(大约 1500 个文档/秒)。
我能否以某种方式加快处理速度以换取更多内存使用量?
def dowork(args):
uid = int(args.get('uid'))
if map_userid_visits.get(uid):
map_userid_visits[uid] += 1
else:
map_userid_visits[uid] = 1
def main():
manager = Manager()
map_userid_visits = manager.dict()
start_time = time.time()
print ('Start Time', start_time)
cur = cursor.Cursor(mycollection)
pool = multiprocessing.Pool(CONFIG_POOL_SIZE)
iteration = 0
for user_event in cur:
pool.apply(dowork, (user_event, ))
pool.close()
pool.join()
print map_userid_visits
【问题讨论】:
标签: python python-multiprocessing