让我先给出一个我正在处理的例子:
我经常调用以前工程师提供的Perl脚本来处理一些数据,然后继续使用我的脚本。我使用system
或back-ticks
在我的脚本中调用其他人的脚本。
现在,我想知道如果我将这些脚本重写为包,并使用require
或use
将这些包包含在我的脚本中,它会增加处理速度吗?会有多大的不同?
效益:
- 这将节省加载shell,加载
perl
,编译脚本和它使用的模块所花费的时间。这是几秒最小,但它可以更大。 - 如果您必须序列化数据以传递给子进程,那么您还可以节省序列化和反序列化数据所花费的时间。
- 允许更灵活的接口 这将使错误处理更容易和更灵活。
缺点:
- 由于现在所有进程都处于相同的进程中,子进程可以对父进程产生更大的影响。例如,子进程崩溃会导致父进程崩溃。