gecko-dev/xpcom
Andrew McCreight cb5234676d Bug 1005500 - Use a separate linear scan pass to mark nodes white in ScanRoots. r=smaug
The existing code for ScanRoots looks at all traversal roots in the graph,
and floods white or black from them. This can take up a large chunk of the
Scan/Unlink slice of ICC, maybe because graph traversal has poor locality.

Outside of a leak, the cycle collector graph is usually only large when
there is a lot of garbage (95% or more of the graph), so we want to
speed up white marking.

To do this, I add a new pass that scans every node and directly sets the
color of any node that should be white, without flooding. This is very
fast. Then a second pass floods black from any remaining grey nodes.

On the page close CC for a real page, I measured a 10x improvement in
ScanRoots() time with this algorithm, from 3ms to 0.3ms.
2014-05-08 11:28:03 -07:00
..
analysis Bug 973142 - Get rid of the MOZILLA_INTERNAL_API makefile variable; r=glandium 2014-02-18 01:56:51 -05:00
base Bug 1005500 - Use a separate linear scan pass to mark nodes white in ScanRoots. r=smaug 2014-05-08 11:28:03 -07:00
build Backed out changeset 86f9003c1251 (bug 924622) for causing bug 1007284 (frequent mochitest-e10s-2 shutdown hangs). 2014-05-07 17:03:03 -04:00
components Version bump. CLOSED TREE NO BUG a=release 2014-04-28 14:18:37 -04:00
doc
ds Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
glue Bug 1003479 - Fix incorrect usage of SizeOfIncludingThis and SizeOfExcludingThis functions. r=njn 2014-05-01 10:37:54 -07:00
idl-parser Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
io Bug 990957 - Seek again in Tell(), Available(), Seek() of nsMultiplexInputStream. r=mcmanus 2014-05-05 12:22:16 +08:00
libxpt/xptcall
reflect Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
sample Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
string Bug 995730 - Change xpcom/string/ to use 2 space indentation 2014-05-05 20:30:46 +03:00
system Bug 962314 - Create nsIXULAppinfo.processID for obtaining Firefox PID; r=bsmedberg 2014-03-26 11:55:22 -04:00
tests Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
threads Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
tools
typelib Bug 1006998 - Fix -Wdeprecated-writable-strings warnings by const-correcting typelib/xpt code. r=bholley 2014-05-05 21:40:06 -07:00
windbgdlg Bug 933135 - Treat SIMPLE_PROGRAMS more like PROGRAM. r=mshal 2013-11-02 08:43:55 +09:00
xpidl Bug 921816 - Handle idls in --with-libxul-sdk builds. r=gps 2013-11-07 10:37:44 +09:00
Makefile.in Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
moz.build Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
xpcom-config.h.in Backed out changeset 8d8165293e9b (bug 976372) because of Windows debug bustage on a CLOSED TREE 2014-02-24 23:01:54 -05:00
xpcom-private.h.in