Allocation/Memory Leak question_(re)
Sat, 26 Jul 1997 12:50:28 +0200 (MET DST)
According to Ken:
>
> program allo2;
> var
> mm: array[1..500000] of real;
> indx : __long__ integer;
(* JFYI, `__long__ Integer's have 64 bits. For your program, an ordinary
32-bit `Integer' would be sufficient. *)
> ma: array[1..500000] of real;
> [...]
> This program realy does nothing of value but when the second FOR
> loop is running, the program starts eating up memory.
Really at the second FOR loop, not already at the first one?
I don't know the details of the memory management of Linux, but
AFAIK, the storage is physically allocated when the array is
referenced.
> According to TOP,
> the program uses 8094 kBytes just before the loop ends. Why should
> this program be so memory hungry at that time? [...]
Simply because one `Real' has eight bytes, and you are allocating one
million of `Real's. 8000000 bytes are 7812.5kB; if you include code,
runtime library, etc., 8094kB seems realistic for me.
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
maintainer GNU Pascal [970714] - http://home.pages.de/~gnu-pascal/ [970125]
Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es