我刚刚编写了一个脚本,旨在全天候运行以更新某些文件。但是,如果更新一个文件需要3分钟,则更新100个文件需要300分钟。
是否可以运行n个脚本实例来管理n个单独的文件以加快周转时间?
答案 0 :(得分:2)
是的,这是可能的。使用multiprocessing模块启动多个并发进程。这样做的好处是,由于全局解释器锁定和线程不会遇到问题,如手册页中所述。手册页包含使脚本并行执行所需的所有示例。当然,如果流程不需要进行交互,那么这种方法效果最好,这是您的示例所示。
答案 1 :(得分:2)
我建议你先找出是否有办法在单个帖子中减少3分钟。 我用来发现加速机会的方法是demonstrated here。
这也会告诉你是否纯粹受I / O限制。 如果您完全受I / O限制,并且所有文件都在一个磁盘上,则并行性将无济于事。 在这种情况下,可能将文件存储在固态驱动器上会有所帮助。
另一方面,如果你受CPU限制,并行性将有所帮助,正如@hochl所说。 无论如何,找到加速机会并修复它们。 我从未见过任何没有其中一个或几个的大型程序。 这将给你一个加速因子,并行性将给你另一个,并且总加速将是这两个因素的乘积。