0

我很难找到这个问题的答案,这可能是由于措辞不当。

我有一个从大型日志文件中提取数据的小型 python 程序。然后它以特定格式显示数据。没什么特别的,只是读取、解析和打印。

执行此操作大约需要一分钟。

现在,我想在 300 个文件中运行它。如果我将代码放入一个循环中,该循环遍历 300 个文件并一个接一个地执行同一段代码,则需要 300 分钟才能完成。我宁愿不要花这么长时间。

我在这台机器上有 8 个虚拟处理器。当这个程序运行时,它可以处理额外的负载。我可以将工作负载分散到这些 vcpus 上以减少总运行时间吗?如果是这样 - 实现这一点的理想方法是什么?

我追求的不是代码,而是它背后的理论。

谢谢

4

1 回答 1

1

不要将并行性作为您的首要任务。您的首要任务应该是使单线程性能尽可能快。我依靠这种方法。从您的简短描述中,听起来 I/O 和解析中可能有很多加速的机会。

完成此操作后,如果程序受 CPU 限制(我对此表示怀疑 - 它应该将大部分时间花在 I/O 上),那么并行性可能会有所帮助。

于 2013-10-03T12:54:18.480 回答