Hey all,

After finding out that life.pasm only does maybe 1KB per collection, and
Sean reminding me that there's more to GC than life, I decided to create
some pasm files testing specific behaviors.

Attached is what I've been using to test and compare running times for
different GC systems. It's given a list of builds of parrot, a list of
tests to run, and runs each four times and takes the sum of them as the
value for that test. Then it prints out a simple table for comparing the
results. It's not really robust or easily workable in a CVS checkout
(since it operates on multiple parrot checkouts).

Included are five tests of certain memory behaviors. They are:

gc_alloc_new.pbc
allocates more and more memory
checks collection speed, and the ability to grow the heap

gc_alloc_reuse.pbc
allocates more memory, but discards the old
checks collection speed, and the ability to reclaim the heap

gc_header_new.pbc
allocates more and more headers
checks DOD speed, and the ability to allocate new headers

gc_header_reuse.pbc
allocates more headers, but discards the old
checks DOD speed, and the ability to pick up old headers

gc_waves_headers.pbc
total headers (contain no data) allocated is wave-like
no data, so collection is not tested
tests ability to handle wavelike header usage pattersn

gc_waves_sizeable_data.pbc
buffer data (pointed to by some headers) is wave-like
a few headers, so some DOD is tested
mainly tests ability to handle wavelike buffer usage patterns

gc_waves_sizeable_headers.pbc
total headers (and some memory) allocated is wave-like
sort of a combination of the previous two
each header points to some data, so it tests the collectors
  ability to handle changing header and small-sized memory usage

gc_generations.pbc
me trying to simulate behavior which should perform exceptionally
  well under a genertaional collector, even though we don't have one :)
each memory allocation lasts either
  a long time, a medium time, or a short time


Please let me know if there are any other specific behaviors which could
use benchmarking to help compare every aspect of our GCs? Real-world
programs are too hard to come by. :) Results of the above test suite on my
machine comparing my local GC work and the current parrot GC are coming
soon...

Enjoy!
Mike Lambert

PS: If you get bouncing emails from me because my email server is down, I
apologize, and I do know about it. My email server is behind cox's
firewall which prevents port 25 access. It should be relocated and online
again in a few days.

Attachment: gc_bench.zip
Description: gc_bench.zip

Reply via email to