[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: RE: GC performance
- From: skaller <skaller@...>
- Date: 07 Jan 2005 16:41:33 +1100
On Fri, 2005-01-07 at 16:06, Joshua Jensen wrote:
> I get the following on an Athlon 64 3200+ running Windows XP:
Wow .. some of your numbers are very different from mine
(I'm using 700MHz PIII :)
> > With list length 200, 5000 iterations,
> > work4 uses 7963 memory, whereas 5.0.2 only uses 4694.
> > [And work4 is again 10% faster]
> iters = 5000, listlen = 200
> luarc: 2.25 secs, 5,214,208 bytes
> lua-5.0.2: 3.37 secs, 9,555,968 bytes
> lua-5.1-work4: 9.19 secs, 14,245,888 bytes
3 times slower.. ?
> > Finally I tried to keep 500 lists instead of 100.
> > The two collectors performed about the same.
> iters = 5000, listlen = 500
> luarc: 5.92 secs, 11,931,648 bytes
> lua-5.0.2: 10.64 secs, 22,790,144 bytes
> lua-5.1-work4: 47.40 secs, 34,275,328 bytes
Now almost 5 times slower and 50% more memory..
> Just so I didn't screw this up (I hope)... this is what I used. I didn't
> call a collectgarbage() anywhere... just used the function provided.
It is possible that the incremental collector is slower
because it is actually collecting garbage.
However, if you call collectgarbage() at the end of the
test and include that in the times, it may be fairer:
in theory, the incremental collector should have already
cleaned up some garbage and so a final full collection
should be faster in work4 than 5.0.
I.e. one hopes to get say 10% slowdown in running code,
and 50% speed up on full collection with 10 times less
full collections needed so it all balances out to
a small overhead to get rid of the 'world stop' behaviour
which isn't so great in RT applications like games.
John Skaller, mailto:email@example.com
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net