[svn:parrot] r49676 - branches/generational_gc/src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Oct 25 20:04:40 UTC 2010
Author: bacek
Date: Mon Oct 25 20:04:40 2010
New Revision: 49676
URL: https://trac.parrot.org/parrot/changeset/49676
Log:
Use combination of Pool.is_maybe_owned and PObj flags in GC.is_*_ptr.
This gives about 30% speed up on stress_strings by avoiding expensive
testing of all live objects.
Modified:
branches/generational_gc/src/gc/gc_ms2.c
Modified: branches/generational_gc/src/gc/gc_ms2.c
==============================================================================
--- branches/generational_gc/src/gc/gc_ms2.c Mon Oct 25 20:04:29 2010 (r49675)
+++ branches/generational_gc/src/gc/gc_ms2.c Mon Oct 25 20:04:40 2010 (r49676)
@@ -1723,13 +1723,16 @@
if (!obj || !item)
return 0;
- if (!Parrot_gc_pool_is_owned(interp, pool, item))
+ if (!Parrot_gc_pool_is_maybe_owned(interp, pool, item))
return 0;
/* black or white objects marked already. */
if (PObj_is_live_or_free_TESTALL(obj))
return 0;
+ if (!Parrot_gc_pool_is_owned(interp, pool, item))
+ return 0;
+
/* Pool.is_owned isn't precise enough (yet) */
if (Parrot_list_contains(interp, list, item))
return 1;
More information about the parrot-commits
mailing list