#!/usr/bin/perl
use DBI;
use List::Util 'sum';
my $query;
my $output;
my $db = DBI->connect("DBI:mysql:test","root","mypassword");
while(1){
for($n=0;$n<1000;$n++){
$query="SELECT UNIX_TIMESTAMP()";
$output = $db->prepare($query);
undef($output);
}
$mem = sum(map {(split)[4]} grep {/\btest3\b/} `top -b -n1`) || 0;
print "$mem Mb\n";
sleep(1);
}
вот что показывает
[quote]10488 Mb
10488 Mb
10488 Mb
10616 Mb
10616 Mb
10736 Mb
10736 Mb
10868 Mb
10868 Mb
11000 Mb
11000 Mb
11132 Mb
[/quote]Без модуля List::Util пробывал, тоже самое (проверял через top)
т.е. судя по этому примеру идет постоянная утечка в памяти. Что не так делаю ?
[quote]$ perl -MDBI -e 'DBI->installed_versions'
Perl : 5.010000 (i386-linux-thread-multi)
OS : linux (2.6.22.18-server-1mdv)
DBI : 1.607
DBD::mysql : 4.008
DBD::Sponge : 12.010002
DBD::Gofer : 0.011565
DBD::File : 0.35
DBD::ExampleP : 12.010007
DBD::DBM : 0.03
[/quote]
Известный баг, perl #56908.Жди 5.10.1, в него обещают включить патч. Пока или откатись на < 5.9.2 или пересобери Perl.