]> git.llucax.com Git - software/dgc/cdgc.git/commit
Avoid redundant checks for finals bits
authorLeandro Lucarella <llucax@gmail.com>
Sat, 4 Sep 2010 01:13:06 +0000 (22:13 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Sat, 4 Sep 2010 03:20:22 +0000 (00:20 -0300)
commitcc0ea21e4d2f60ad8cc8c4cc5da47264b8e0dc85
tree8bb919b44eb3ec57cd9e0de681600d78cff13aa6
parent7e86fae368de25d7134db3e3afa586cdd588fdb6
Avoid redundant checks for finals bits

In changeset b28fd72842fc9ce935bed74f7b2ba79f9cc59711 (Run the mark phase
in a fork()ed process) we inadvertently changed the lazy allocation of
finals bit set to eager allocation.

This change left a lot of finals bit set initialization checks that are
not really needed using eager allocation.

We remove this redundant check as we decided to go with the eager
allocation to trade some space for a little more speed, as the extra
checks takes time and is very rare that a whole pool doesn't have any
blocks that need finalization, making the space saving very rare too.

Lazy allocation can impact too in locality of reference, as is more likely
that all the bit sets are allocated near in space, except for the lazyly
allocated one.
rt/gc/cdgc/gc.d