Leopold Toetsch <[EMAIL PROTECTED]> wrote: > As Nick seems to be hitting some limits, I've tried this: > stuff a differing amount of PMCs into an Array and time a DOD run:
> $ parrot -j 10m.pasm > create 1e+06 PerlInts 2.051168 > DOD sweeps: 21 one is 0.141291 > $ parrot -j 10m.pasm > create 2e+06 PerlInts 7.137497 > DOD sweeps: 40 one is 0.278473 Ok, that was too slow. Now its ~2x the speed (needs ARENA_DOD_FLAGS): $ parrot -j 10m.pasm 1e6 create 1e6 PerlInts 1.164776 DOD sweeps: 21 one is 0.067851 $ parrot -j 10m.pasm 2e6 create 2e6 PerlInts 3.666187 DOD sweeps: 40 one is 0.134032 $ parrot -j 10m.pasm 3e6 create 3e6 PerlInts 7.605371 DOD sweeps: 59 one is 0.201386 $ parrot -j 10m.pasm 4e6 create 4e6 PerlInts 12.889947 DOD sweeps: 78 one is 0.270090 For the case when an array is filled with plain scalars (PerlInt, PerlNum or such) and the fill is done one by one as in the test case then the PMCs in the list chunks are adjacent in the arena. For this case the live marking can be done directly in the arena->dod_flags. leo