【发布时间】:2015-10-22 06:52:16
【问题描述】:
我有一个使用 multiprocessing.Pool 调用的函数
像这样:
from multiprocessing import Pool
def ingest_item(id):
# goes and does alot of network calls
# adds a bunch to a remote db
return None
if __name__ == '__main__':
p = Pool(12)
thing_ids = range(1000000)
p.map(ingest_item, thing_ids)
正在迭代的列表 pool.map 包含大约 100 万个项目,
对于每个ingest_item() 调用,它都会调用第 3 方服务并将数据添加到远程 Postgresql 数据库。
在 12 核机器上,它在 24 小时内处理约 1,000 个pool.map 项。 CPU 和 RAM 使用率低。
我怎样才能使这更快?
由于瓶颈似乎是网络调用,切换到线程是否有意义?
提前致谢!
【问题讨论】:
标签: python