【发布时间】:2017-02-20 09:33:31
【问题描述】:
假设我有 10,000 个文件,我将使用 python 代码从这些文件中提取一些信息并将这些信息写入 mongodb。所有这些操作都将在一台本地计算机上完成。
我能否使用 python 的多处理包并行执行所有操作以加快处理速度?有没有更好的办法?
【问题讨论】:
假设我有 10,000 个文件,我将使用 python 代码从这些文件中提取一些信息并将这些信息写入 mongodb。所有这些操作都将在一台本地计算机上完成。
我能否使用 python 的多处理包并行执行所有操作以加快处理速度?有没有更好的办法?
【问题讨论】:
是的,多处理将有助于分配工作负载。如果你的机器上有 8 个内核,那么大约 8 个 Python 进程可能会最大限度地提高吞吐量。不仅如此,磁盘 I/O 的争用,或与 MongoDB 服务器争夺 CPU 时间,都将成为瓶颈。 “multiprocessing.Pool.map”函数特别适合在进程之间划分工作:
https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers
【讨论】: