为什么perl编译代码需要更多内存?

时间:2013-03-01 19:44:40

标签: linux performance perl memory

以下是名称为while.pl的示例代码文件。

#!/usr/bin/perl
use strict;
use warnings;
my $i=0;
while (1)
{
  print "Testing $i\n" ;
  $i++ ;
  sleep(1);
}

我已使用

编译了此代码
perlcc -o compiled while.pl

然后我执行了正常代码while.pl和编译代码compiled。 我使用ps命令

观察了内存和CPU使用情况
ps axo %cpu,%mem,command | grep "while\|compiled"

0.0  0.0 /usr/bin/perl ./while.pl
0.0  0.1 ./compiled

所以我的问题是:

  • while.pl相比,为什么编译的代码会占用更多内存?
  • 我如何避免编译的perl代码的内存使用?

1 个答案:

答案 0 :(得分:3)

始终编译Perl代码。你正在做的是事先编译它而不是在运行时。

在运行时加载已编译的表单需要更多内存,因为您正在加载正常加载的所有内容之上的编译表单加载器。