使用subprocess.call方法在
Python中有更高效或更快的效果吗?我注意到一年前有一个关于这个问题的问题(
Python subprocess module much slower than commands (deprecated)),除非由于Python删除了替代方案而导致折旧,所以我想看看这是否是现在唯一的,从而最快的方式从shell调用命令在Python中.具体来说,我正在运行以下命令:
subprocess.call(“foo”,shell=True)
或者我应该使用操作系统?
谢谢.
最佳答案 可能不是.您可能能够稍微加快调用速度,但根据我的经验,最大的好处是只启动子进程一次然后保持活动状态.
创建新进程是一项非常昂贵的操作,Python无法真正降低成本.
因此,不是调用/ bin / ls路径… 100次,而是创建一个外部进程,从stdin读取路径并返回所需的输出而不退出.
作为一个(悲伤的)例子:在ca. 1997年,我通过编写一个保持VM活动的包装器使Java 1编译器快1000倍,并在通过套接字接收选项后开始编译.这主要不是因为进程创建时间,而是因为在那个时间和之前启动Java VM需要很长时间.