1

以下是一个示例代码文件,其名称为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 代码的内存使用?
4

1 回答 1

3

Perl 代码总是被编译的。您正在做的是提前而不是在运行时编译它。

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

于 2013-03-01T19:59:09.267 回答