使用Multiprocessing.Process与SubProcess.Popen进行速度比较



我正在使用python3执行pyqt代码;同时,我需要致电Python2.7代码,以进行无法通过Python3执行的操作。

我确实通过Popen实现了2.7代码执行;尽管从Popen调用时,运行2.7代码需要大量时间。如果我直接从python2.7。

可以将multiprocessing而不是subprocess.Popen用于相同的目的,以加快2.7代码的执行?如果那是合适的;从multiprocessing.Process调用Python2.7代码的正确方法是什么?还是使用多流程,因为我只执行一个操作?

multiprocessing仅在无法 fork 过程的非Posix系统上类似于subprocess,因此从理论上讲,您可以使用multiprocessing来使用其他解释器。这将比它的价值更大,因为那时您在产卵subprocess和使用multiprocessing.Process之间不会获得任何性能的提高(实际上,由于添加到multiprocessing.Process中的通信开销,它可能会降低速度较慢)。

因此,如果我们只谈论必须在另一个解释器中执行的单个任务,那么这就是您所能获得的快速。如果要在其他解释器中执行多个任务,则您仍然可以通过产生单个子过程来运行不同的解释器,然后在其中使用multiprocessing来从multiprocessing.Process中受益。

最新更新