Ztracejici se pamet

Pavel Smerk xsmerk na informatics.muni.cz
Čtvrtek Listopad 14 20:58:57 MET 2002


	Zdravim vespolek.

Mam nasledujici pokusny kod:

$ cat mem.pl
#!/usr/bin/perl -w
use strict;
warn "perl $] on $^O\n";
my ($tmp, %tmp);
$tmp{$tmp} = " " x 100 while ++$tmp < 50000;
warn `ps -p $$ -o vsz=` =~ /(\d+)/, "\n";
foreach (keys %tmp) {
        warn `ps -p $$ -o vsz=` =~ /(\d+)/, "\n" unless $tmp++ % 10000;
        s/./x/;
        }
warn `ps -p $$ -o vsz=` =~ /(\d+)/, "\n";

$ ./mem.pl
perl 5.006001 on linux
12912
15028
15188
15348
15508
15672
15828

Podobne se to chova i na jinych operacnich systemech (irix, solaris) i s
jinymi verzemi perlu (5.4, 5.8).

Jednak by me zajimalo, proc mu utika pamet pri blbem nahrazovani znaku za
znak.

Taky mi ale vadi ztrata pameti pri foreach pres klice hashe. Lze nejak
prochazet klice hashe, aniz by dochazelo k teto ztrate? Zrejme z nich udela
pole, to ja ale k nicemu nepotrebuji, stacilo by mi je jakkoli dostavat
jeden po druhem.
								Diky	P.


Další informace o konferenci Perl