On Mon, May 10, 2010 at 7:54 PM, Will Coleda <w...@coleda.com> wrote: > With help from chromatic, bacek, sorear, et al. branches/codestring is > ready for testing. > > The original goal of this branch was avoid the cost of doing a concat > and a partial, small realloc as the string was built, and instead do > it less frequently using Parrot_str_join on an RSA attribute of > CodeString. This generated memory issues with the number of small > strings left around, which chromatic worked around by collapse the > CodeString in mark() before having to deal with the child strings. I > don't this was ever as effective as trunk > > This branch now converts makes CodeString ISA StringBuilder, and > funnels everything done via .emit() or concat into bacek's > StringBuilder. This caused HUGE memory usage problems until sorear > identified that PCC calls in nqp-rx were coercing the CodeString into > a String, which caused clones of the StringBuilder's buffer to > accumulate. His fix in a branch to nqp-rx is incorporated in this > branch... > > ...Which now works for me a little slower than trunk in most cases, > except for the very particular case of "ulimit -v 367001" (.35G); in > this case, building rakudo blows up on trunk, but succeeds on the > branch. sorear (whose machine has .35G of physical memory) reports > better times on this branch. My testing of memory utilization is > limited to feather (a VM with a lot of other stuff going on) as my OS > X 10.6 shell doesn't seem to respect ulimit -v OR ulimit -m ; so I > don't expect my results to be very helpful on either platform. > > Can we get some feedback from more platforms and memory configurations > about speed and/or memory utilization on trunk vs. branch? Sorear and > I have been testing rakudo build times, but other benchmarks are also > interesting. > > If this is, in general, a win, let's get it rolled into trunk > (including the nqp-rx update), if not, we can see if there are any > pieces to salvage before we kill the branch. > > Thanks. > > -- > Will "Coke" Coleda >
bacek is a magician, with the latest on branches/codestring real 3m16.927s user 2m59.499s sys 0m7.863s and trunk real 4m41.854s user 3m40.215s sys 0m11.918s So, build times are now better in branches/codestring. I can't ssh to feather at the moment to double check how this fares under a ulimit. Try them both again and let us know so we can merge this back now. =-) -- Will "Coke" Coleda _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev