Re: Questions about Px registers and memory usage [PATCH]

2002-11-03 Thread Leopold Toetsch
Peter Gibbs wrote:


Clinton A. Pierce wrote:



LOOP:  new P1, .PerlHash
 branch LOOP



This is simply a long-standing GC bug. Try the attached patch and see if
it helps.


Thanks for clarifying this. Actually, when introducing GC_IS_MALLOC I 
was bug compatible too ;-)

Patch included in Parrot_destroy.

leo



Re: Questions about Px registers and memory usage [PATCH]

2002-11-03 Thread Peter Gibbs
Clinton A. Pierce wrote:

> LOOP:  new P1, .PerlHash
>   branch LOOP

> What happens is that memory gets chewed up
> quickly. Do I have the wrong idea of how the Px registers are used to
point
> to things (god, I hope not) or is there some GC that needs to happen that
> isn't (and I can expect it to vanish eventually)?

This is simply a long-standing GC bug. Try the attached patch and see if
it helps.
--
Peter Gibbs
EmKel Systems



dod.patch
Description: Binary data


Questions about Px registers and memory usage

2002-11-02 Thread Clinton A. Pierce
I'm in the middle of a rather large project, and stopped to do a memory 
usage sanity check.  To my surprise I found a leak and traced it back to 
the way I was allocating PerlHashes and whatnot.

To boil it down further, look at this PASM:

LOOP:  new P1, .PerlHash
	  branch LOOP

What I'd *expect* is that this would have a steady-state, as each new 
PerlHash is created it bashes the pointer to the previous PerlHash in 
P1.  The old PerlHash would then get garbage collected and after the second 
iteration I'd reach a steady-state for memory usage.  Kinda like this Perl:


LOOP: $t={};
	goto LOOP;

Only that ain't how it works.  What happens is that memory gets chewed up 
quickly. Do I have the wrong idea of how the Px registers are used to point 
to things (god, I hope not) or is there some GC that needs to happen that 
isn't (and I can expect it to vanish eventually)?