我无法找到这个问题的答案,这可能是因为措词不当。
我有一个小的python程序,它从大型日志文件中提取数据。 然后它以特定格式显示数据。没什么好看的,只是阅读,解析和打印。
这需要大约一分钟的时间。
现在,我想在300个文件中运行它。如果我将我的代码放在循环中,循环遍历300个文件并逐个执行相同的代码,则需要300分钟才能完成。我宁愿没花这么久。
我在这台机器上有8个虚拟处理器。它可以在运行该程序时处理额外的负载。我可以将工作负载分散到这些vcpus上以减少总运行时间吗?如果是这样 - 实现这个的理想方法是什么?
这不是我追求的代码,而是背后的理论。
由于
答案 0 :(得分:1)
不要将并行性作为您的首要任务。您的首要任务应该是尽可能快地使单线程性能。 I rely on this method.从您的简短描述中可以看出,在I / O和解析中加速可能会有很多机会。
执行此操作后,如果程序受CPU限制(我怀疑 - 它应该将大部分时间花在I / O上),那么并行性可能会帮助。