Re: Questions about Px registers and memory usage [PATCH]
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]
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
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)?