Perl threads нужно освободить память.
Джем Писатель

Пол: 
Зарегистрирован: 25.11.2004
Сообщения: 551
Откуда: Шадринск
Статус: Offline
#!/usr/bin/perl -w
use strict;
use threads;
my ($fname, $msize, $cpu) = split ' ', qx( ps ax -o fname,m_size,%cpu | grep Perl-5 ); print "Выделено памяти: $msize\n";
my @proc = ();
$proc[$_] = threads->new(\&test) for (1..100);
$proc[$_]->join for (1..100);
($fname, $msize, $cpu) = split ' ', qx( ps ax -o fname,m_size,%cpu | grep Perl-5 ); print "Выделено памяти: $msize\n";
sleep 5;
$proc[$_] = threads->new(\&test) for (1..100);
$proc[$_]->join for (1..100);
($fname, $msize, $cpu) = split ' ', qx( ps ax -o fname,m_size,%cpu | grep Perl-5 ); print "Выделено памяти: $msize\n";
while ('true') {
($fname, $msize, $cpu) = split ' ', qx( ps ax -o fname,m_size,%cpu | grep Perl-5 ); print "Выделено памяти: $msize\n";
sleep 1;
}
sub test {
sleep int rand 5;
return 0;
}
Не освобождается память joinутых процессов. Detach освобождают, но не всю. Есть перловщики в г. Ша?
Добавлено спустя 26 секунд:
Вывод программы:
Выделено памяти: 1211
Выделено памяти: 19051
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486
Выделено памяти: 21486 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|