[pypy-commit] pypy default: Give the walk_roots operation during a nursery collection its own
arigo
noreply at buildbot.pypy.org
Tue Oct 18 20:04:09 CEST 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r48213:5fcf5ac416dc
Date: 2011-10-18 20:03 +0200
http://bitbucket.org/pypy/pypy/changeset/5fcf5ac416dc/
Log: Give the walk_roots operation during a nursery collection its own
starting/ending subtime. When running "translate.py --annotate", it
is found to take 15% of the time of nursery collections (not really
enough to care). For reference, the times are:
12.4% gc-minor including 1.9% gc-minor-walkroots 6.5%
gc-collect (i.e. major collections)
diff --git a/pypy/rpython/memory/gc/minimark.py b/pypy/rpython/memory/gc/minimark.py
--- a/pypy/rpython/memory/gc/minimark.py
+++ b/pypy/rpython/memory/gc/minimark.py
@@ -1292,10 +1292,12 @@
# if a prebuilt GcStruct contains a pointer to a young object,
# then the write_barrier must have ensured that the prebuilt
# GcStruct is in the list self.old_objects_pointing_to_young.
+ debug_start("gc-minor-walkroots")
self.root_walker.walk_roots(
MiniMarkGC._trace_drag_out1, # stack roots
MiniMarkGC._trace_drag_out1, # static in prebuilt non-gc
None) # static in prebuilt gc
+ debug_stop("gc-minor-walkroots")
def collect_cardrefs_to_nursery(self):
size_gc_header = self.gcheaderbuilder.size_gc_header
More information about the pypy-commit
mailing list