On Sun, Jul 01, 2012 at 07:42:37PM +0100, Nicholas Clark wrote: > > We all agree that we'd really like to see Rakudo's memory usage > > drop, especially on the build steps for the larger files (like > > Perl6/Actions.pm and CORE.settings).
I've now done some more testing and looking at build process memory consumption -- more to come on this in a later message. We may have a GC issue. > I've no idea if this is a small change, or a big change, > but is it easy/viable/ useful to serialise the (in use) data > structures between the various stages: > > Stage parse: 163.188 > Stage syntaxcheck: 0.000 > Stage past: 0.000 > Stage optimize: 22.881 > Stage post: 55.730 > Stage pir: 25.610 > [...] > > If it's *easy*, it would be a win (I think) if the cost of memory usage of > unused structures is higher than the cost of startup plus the cost of > serialise/deserialise. And not a win if it's not. I suspect it's not easy; I'd rather find out what's using up all of the memory in the first place. > Is there any Parrot or 6model equivalent of Devel::Size - ie a tool which > attempts to work out the memory usage of everything reachable from an input > object? Not that I'm aware of. That could be very useful. Indeed, I really wish Parrot had a way to return me a list of all of the objects reachable from a given object by following the GC mark algorithm. Maybe Parrot does have such a thing and I'm just unaware of it. :-) More soon, Pm