我创建了一个简单的perl脚本。 它唯一能做的就是等待5秒钟。
当我通过mod_perl在服务器上生成脚本时,需要大量内存。 该实例需要36兆字节。
为什么分配了这么多内存? 如何最小化运行脚本从系统中获取的内存?
这是运行2个脚本时“top”实用程序的输出。
5162 www-data 25 0 36732 8124 2868 S 1.3 3.1 0:00.05 apache2
5161 www-data 25 0 36732 8124 2868 S 0.7 3.1 0:00.04 apache2
剧本。
#!/usr/bin/perl
use CGI;
my $query= new CGI;
my $content = "5 second delay...\n";
$query->header(
'-Content-type' => "text/plain",
'-Content-Length' => length($content)
);
print $content;
sleep(5);
答案 0 :(得分:0)
不,它不需要36兆字节。
这是在流程中分配的地址空间量。它包括从可执行文件映射的空间,从文件映射的mmap(),以及与其他进程共享的关键空间。
其中绝大多数将与其他进程(尤其是其他Apache工作进程)共享。
要了解它实际使用了多少内存,请在工作中获取一些Perl内存分析器。