大佬教程收集整理的这篇文章主要介绍了Perl技术分离一部分代码以独立运行是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Does a fork(2) system call to create a new process running the same program at the same point.
因此,拥有一个耗费大量内存并为一个小任务调用fork的大型应用程序意味着将有两个大的perl进程,而第二个将浪费资源只是为了做一些简单的工作.
所以,问题是:做什么(或如何使用fork,如果它是唯一的方法),以便让独立的代码部分独立运行并消耗它所需的资源?
只是一个非常简单的例子:
use Strict; use warnings; my @big_array = ( 1 .. 2000000 ); # at least 80 MB memory sleep 10; # to have time to inspect easely the memory usage fork(); sleep 10; # to have time to inspect easely the memory usage
并且子进程也消耗80 MB.
要明确:与这个分离的代码进行交流或以某种方式使用其结果并不重要,只是为了可以说“嘿,在后台为我运行这个简单的任务,让我继续我的繁重工作……”不要浪费我的资源!“在运行繁重的perl应用程序时.
use Strict; use warnings; use 5.010; my @ary = (1 .. 10_000_000); if (my $pid = fork()) { # parent say "Forked $pid from $$; sleeping"; sleep 1_000; } else { # child exec('perl -e sleep 1_000'); }
(@ary只是用来填补原始进程的内存.)
我说fork()ing相对便宜,即使它复制了整个原始进程.这些陈述没有冲突;设计fork的人注意到了同样的问题.副本是惰性的,也就是说,只复制实际更改的位.
如果您发现您希望这些流程能够相互通信,那么您将开始进入更复杂的IPC领域,其中已经编写了大量的书籍.
以上是大佬教程为你收集整理的Perl技术分离一部分代码以独立运行是什么?全部内容,希望文章能够帮你解决Perl技术分离一部分代码以独立运行是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。