Karim BELABAS on Thu, 11 Mar 1999 13:01:13 +0100 (MET)

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

pari.el + GC

[Paul van Wamelen: ]
[I'm not sure this was also sent to the list, but it raises interesting
topics, so...]
> I (just quickly) tried the new pari.el and so far it looks good. At
> least the things that bugged me are gone.
> ? \s
> [...]
>  Occupation of the PARI stack :   0.00 percent
> [...]
> "\s" always gives me 0.00 percent of the stack used, even after all
> kinds of computations.

That's how it should be. Permanent things go to heap. Stack is non-permanent
scratch space: after returning to the prompt all of it should have been given
back. The \s format is a legacy of old times when history was cluttering
the stack (so that you had to restart GP after a number of computations...).
It is now mostly useless (when debugging, the underlying routine can be

You can use print(getstack()) in the middle of your computation, it will tell
you how much garbage the _analyzer_ has accumulated (not much usually). \gm 2
is much more useful, because it tells you where and when important garbage
collecting is occuring, mostly in the library routines this time.

[Garbage Collecting in PARI is messy to use in library mode, but very
efficient: since things are not allocated in a complicated way, garbage is
freed simply by moving the stack pointer. Sometimes things have to be shifted
around, but all in all, about 1 or 2% of total user time is used up by the
(primitive...) GC engine. Of course if the stack is too large, there may be a
problem with swap and cache, hence it may be better to work with a _small_
stack. Well relatively small, 40MB, say; if things don't fit in there,
chances are that GC is not being done properly (unless the input data is
"huge" of course...)]

Karim Belabas                    email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud             Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France)           Fax: (00 33) 1 69 15 60 19
PARI/GP Home Page: http://hasse.mathematik.tu-muenchen.de/ntsw/pari/