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

Reply via email to