Changes

Jump to: navigation, search

Performance:Leak Tools

27 bytes removed, 18:32, 29 February 2012
Cycle collector heap dump
Then evaluate this expression:
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils).
cycleCollect(Components.classes["@mozilla.org/cycle-collector-logger;1"]
.createInstance(Components.interfaces.nsICycleCollectorListener))
 
In version 11 or earlier, you probably want this version, which will run the GC first:
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils).
garbageCollect(Components.classes["@mozilla.org/cycle-collector-logger;1"]
.createInstance(Components.interfaces.nsICycleCollectorListener))
 
Nightly builds before 2012 defaulted to all traces, newer builds logs the
garbageCollect(Components.classes["@mozilla.org/cycle-collector-logger;1"]
.createInstance(Components.interfaces.nsICycleCollectorListener).allTraces())
 
If you don't want to run JS garbage collection before cycle collection, use nsIDOMWindowUtils.cycleCollect method:
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils).
cycleCollect(Components.classes["@mozilla.org/cycle-collector-logger;1"]
.createInstance(Components.interfaces.nsICycleCollectorListener))
This creates a file named cc-edges-NNNN.log and writes a dump of the heap known to the cycle collector, which includes JS objects and also native C++ objects that participate in cycle collection, to the file.
Confirm
559
edits

Navigation menu