// Exercise incremental compacting GC // Run with MOZ_GCTIMER to see the timings
gczeal(0);
function testCompacting(zoneCount, objectCount, sliceCount)
{ // Allocate objectCount objects in zoneCount zones // On linux64 debug builds we will move them all // Run compacting GC with multiple slices
var zones = []; for (var i = 0; i < zoneCount; i++) { var zone = newGlobal();
evaluate("var objects; " + "function makeObjectGraph(objectCount) { " + " objects = []; " + " for (var i = 0; i < objectCount; i++) " + " objects.push({ serial: i }); " + "}",
{ global: zone });
zone.makeObjectGraph(objectCount);
zones.push(zone);
}
// Finish any alloc-triggered incremental GC if (gcstate() !== "NotActive")
gc();
startgc(sliceCount, "shrinking"); while (gcstate() !== "NotActive") {
gcslice(sliceCount);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.