https://bugs.webkit.org/show_bug.cgi?id=77313
Reviewed by Adam Birth.
Trigger garbage collection manually between test runs to avoid GC
to occur in the middle of runs.
* DOM/resources/dom-perf.js:
(BenchmarkSuite.prototype.RunSingle):
* resources/runner.js:
(gc.else.gcRec):
(gc):
(runLoop):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106211
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-01-29 Ryosuke Niwa <rniwa@webkit.org>
+
+ DOM/DOMDivWalk.html result is unreliable
+ https://bugs.webkit.org/show_bug.cgi?id=77313
+
+ Reviewed by Adam Birth.
+
+ Trigger garbage collection manually between test runs to avoid GC
+ to occur in the middle of runs.
+
+ * DOM/resources/dom-perf.js:
+ (BenchmarkSuite.prototype.RunSingle):
+ * resources/runner.js:
+ (gc.else.gcRec):
+ (gc):
+ (runLoop):
+
2012-01-26 Ryosuke Niwa <rniwa@webkit.org>
Import Chromium's dom_perf test
this.benchmarkContentHolder.removeChild(this.benchmarkContent);
this.benchmarkContent = this.benchmarkContentProto.cloneNode();
this.benchmarkContentHolder.appendChild(this.benchmarkContent);
+ gc();
+
try {
if (benchmark.setup) {
if (!setupReturn || !benchmark.shareSetup)
log("max " + computeMax(times));
}
+function gc() {
+ if (window.GCController)
+ GCController.collect();
+ else {
+ function gcRec(n) {
+ if (n < 1)
+ return {};
+ var temp = {i: "ab" + i + (i / 100000)};
+ temp += "foo";
+ gcRec(n-1);
+ }
+ for (var i = 0; i < 1000; i++)
+ gcRec(10);
+ }
+}
+
function runLoop()
{
if (window.completedRuns < window.runCount) {
+ gc();
window.setTimeout(run, 0);
} else {
logStatistics(times);