在编写 python、perl、ruby 或 php 时,我经常使用...
PERL:
`[SHELL COMMAND HERE]`
system("[SHELL]", "[COMMAND]", "[HERE]")
Python
import os
os.system("[SHELL COMMAND HERE]")
from subprocess import call
call("[SHELL]", "[COMMAND]", "[HERE]")
ruby
`[SHELL COMMAND HERE]`
system("[SHELL COMMAND HERE]")
PHP
shell_exec ( "SHELL COMMAND HERE" )
在 shell 中生成子进程会在多大程度上降低程序的性能?例如,我只是用 perl 和 libcurl 编写了一个脚本,并且很难使用 libcurl 的所有参数来使其工作。我停止使用 libcurl 并开始使用curl
,性能似乎得到了提高,脚本编写变得更加容易,此外,我可以在只安装基本 perl(没有 cpan 模块)和基本 shell 实用程序的系统上运行我的脚本。
为什么产生这个子shell 被认为是不好的编程习惯?理论上,它是否应该比在语言中使用特定的绑定/等效库慢得多?