eWi*_*dII 3 python shell terminal subprocess
在使用该subprocess.call方法的Python中是否有更高效或更快的效果?我注意到一年前有一个SO问题(Python子进程模块比命令(弃用)慢得多)除了由于Python删除了替代品而导致折旧,所以我想看看这是否是现在唯一的,因此最快意味着从Python中调用shell命令.具体来说,我正在运行以下命令:
subprocess.call( "foo" 的,壳=真)
或者我应该使用os?
谢谢.
可能不是.您可能能够稍微加快调用速度,但根据我的经验,最大的好处是只启动子进程一次然后保持活动状态.
创建新进程是一项非常昂贵的操作,Python无法真正降低成本.
因此,不是调用/bin/ls path...100次,而是创建一个外部进程,从stdin读取路径并返回所需的输出而不退出.
作为一个(悲伤的)例子:在ca. 1997年,我通过编写一个保持VM活动的包装器使Java 1编译器快1000倍,并在通过套接字接收选项后开始编译.这主要不是因为进程创建时间,而是因为在那个时间和之前启动Java VM需要很长时间.
| 归档时间: |
|
| 查看次数: |
3388 次 |
| 最近记录: |