从Python中调用进程的最快方法是什么?

3

如何在Python中执行可执行文件的最快/最有效方法?我认为os.system比subprocess.popen更快。我想要能够读取这个其他进程输出的行,但比任何其他事情都更重要的是速度。


6
为什么速度很重要?如果速度如此关键,为什么你要通过启动其他进程或使用Python来完成事情?你到底想做什么? - Karl Knechtel
3
我同意Karl所说的话,并且:在我看来,os.system比subprocess.popen更快。 你确定吗?这是否很重要? - user225312
除非您需要线程等,否则性能差异可以忽略不计。您应该优化Python代码本身以及对进程的调用(例如,您使用的选项等)。 - Rafe Kettler
你做测量时,产生了哪些测量值?能分享一下吗? - S.Lott
1个回答

4
我认为,例如os.systemos.execvsubprocess.Popen之间的任何速度差异,其实都被启动新进程(以及实际运行该进程所需的上下文切换)的开销所淹没。因此,建议首先使用subprocess并测量性能。
可能需要考虑的一种性能问题是:使用os.systemsubprocess.Popen(shell=True, …)会导致额外的shell进程被创建。在大多数情况下,这个shell进程是不必要的。它的创建是浪费的;你得到了两倍于所需的进程,却没有任何好处。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接