[Moscow.pm] Почему память не используется повторно?
Ivan B. Serezhkin
ivan на serezhkin.com
Пн Дек 17 07:16:34 PST 2007
Привет.
Alex Kapranoff wrote:
> Скопы по умолчанию предполагают, что будут выполняться не один раз. И
> поэтому "кэшируют" аллокацию как дорогую операцию. По-моему так.
>
Во тут совсем опровержение.
я не думаю, что eval string кто то может подозревать в многократном
выполнении =)
#!/usr/bin/perl
use strict;
use URI;
use Data::Dumper;
use Devel::Peek;
sub printmysize {
our $iter;
$iter++;
print "$iter : ".`ps awuxp $$`;
}
printmysize();
print "=== Same Scope ===\n";
for (1..5) {
my $aaa = '1' x (10 * 1024);
$aaa x= 1024;
printmysize();
}
print "=== eval block ===\n";
eval {
my $aaa = '1' x (10 * 1024);
$aaa x= 1024;
printmysize();
} for (1..5);
print "=== eval string ===\n";
eval <<'EOF' for (1..5);
my $aaa = '1' x (10 * 1024);
$aaa x= 1024;
printmysize();
EOF
--
Ivan B. Serezhkin
Подробная информация о списке рассылки Moscow-pm