[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e

abarth at webkit.org abarth at webkit.org
Fri Jan 21 14:49:20 UTC 2011


The following commit has been merged in the debian/experimental branch:
commit 5878fac5bf50e0df53d69118e6daf5f07881ef41
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 31 10:01:49 2010 +0000

    2010-12-31  Patrick Gansterer  <paroga at webkit.org>
    
            Reviewed by Adam Barth.
    
            Add XML parser benchmark
            https://bugs.webkit.org/show_bug.cgi?id=51612
    
            Move the JavaScript code of html parser into a separate file to share it with xml parser.
    
            * benchmarks/parser/html-parser.html:
            * benchmarks/parser/resources/runner.js: Copied from WebCore/benchmarks/parser/html-parser.html.
            (runFunction):
            (run):
            (start):
            * benchmarks/parser/xml-parser.html: Copied from WebCore/benchmarks/parser/html-parser.html.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5d051cd..9178dc4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-12-31  Patrick Gansterer  <paroga at webkit.org>
+
+        Reviewed by Adam Barth.
+
+        Add XML parser benchmark
+        https://bugs.webkit.org/show_bug.cgi?id=51612
+
+        Move the JavaScript code of html parser into a separate file to share it with xml parser.
+
+        * benchmarks/parser/html-parser.html:
+        * benchmarks/parser/resources/runner.js: Copied from WebCore/benchmarks/parser/html-parser.html.
+        (runFunction):
+        (run):
+        (start):
+        * benchmarks/parser/xml-parser.html: Copied from WebCore/benchmarks/parser/html-parser.html.
+
 2010-12-29  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by Kenneth Russell.
diff --git a/WebCore/benchmarks/parser/html-parser.html b/WebCore/benchmarks/parser/html-parser.html
index f3e99ec..bb2c73c 100644
--- a/WebCore/benchmarks/parser/html-parser.html
+++ b/WebCore/benchmarks/parser/html-parser.html
@@ -1,108 +1,19 @@
 <!DOCTYPE html>
 <body>
 <pre id="log"></pre>
+<script src="resources/runner.js"></script>
 <script>
-function log(text) {
-    document.getElementById("log").innerText += text + "\n";
-    window.scrollTo(document.body.height);
-}
-
-function loadFile(path) {
-    var xhr = new XMLHttpRequest();
-    xhr.open("GET", path, false);
-    xhr.send(null);
-    return xhr.responseText;
-}
-
 var spec = loadFile("resources/html5.html");
 
-function parse(html) {
+start(20, function() {
     var iframe = document.createElement("iframe");
     iframe.src = "about:blank";
     iframe.style.display = "none";
-    document.body.appendChild(iframe)
+    document.body.appendChild(iframe);
     iframe.contentDocument.open();
-    iframe.contentDocument.write(html);
+    iframe.contentDocument.write(spec);
     iframe.contentDocument.close();
-    document.body.removeChild(iframe)
-}
-
-var runCount = 20;
-var completedRuns = -1; // Discard the any runs < 0.
-var times = [];
-
-function computeAverage(values) {
-    var sum = 0;
-    for (var i = 0; i < values.length; i++)
-        sum += values[i];
-    return sum / values.length;
-}
-
-function computeMax(values) {
-    var max = values.length ? values[0] : 0;
-    for (var i = 1; i < values.length; i++) {
-        if (max < values[i])
-            max = values[i];
-    }
-    return max;
-}
-
-function computeMedian(values) {
-    values.sort(function(a, b) { return a - b; });
-    var len = values.length;
-    if (len % 2)
-        return values[(len-1)/2];
-    return (values[len/2-1] + values[len/2]) / 2;
-}
-
-function computeMin(values) {
-    var min = values.length ? values[0] : 0;
-    for (var i = 1; i < values.length; i++) {
-        if (min > values[i])
-            min = values[i];
-    }
-    return min;
-}
-
-function computeStdev(values) {
-    var average = computeAverage(values);
-    var sumOfSquaredDeviations = 0;
-    for (var i = 0; i < values.length; ++i) {
-        var deviation = values[i] - average;
-        sumOfSquaredDeviations += deviation * deviation;
-    }
-    return Math.sqrt(sumOfSquaredDeviations / values.length);
-}
-
-function logStatistics(times) {
-    log("");
-    log("avg " + computeAverage(times));
-    log("median " + computeMedian(times));
-    log("stdev " + computeStdev(times));
-    log("min " + computeMin(times));
-    log("max " + computeMax(times));
-}
-
-function run() {
-    var start = new Date();
-    for (var i = 0; i < 10; ++i)
-        parse(spec);
-    var time = new Date() - start;
-    completedRuns++;
-    if (completedRuns <= 0) {
-        log("Ignoring warm-up run (" + time + ")");
-    } else {
-        times.push(time);
-        log(time);
-    }
-    if (completedRuns < runCount) {
-        window.setTimeout(run, 0);
-    } else {
-        logStatistics(times);
-    }
-}
-
-log("Running " + runCount + " times");
-run();
+    document.body.removeChild(iframe);
+});
 </script>
 </body>
diff --git a/WebCore/benchmarks/parser/resources/runner.js b/WebCore/benchmarks/parser/resources/runner.js
new file mode 100644
index 0000000..4baa497
--- /dev/null
+++ b/WebCore/benchmarks/parser/resources/runner.js
@@ -0,0 +1,95 @@
+function log(text) {
+    document.getElementById("log").innerText += text + "\n";
+    window.scrollTo(document.body.height);
+}
+
+function loadFile(path) {
+    var xhr = new XMLHttpRequest();
+    xhr.open("GET", path, false);
+    xhr.send(null);
+    return xhr.responseText;
+}
+
+var runCount = -1;
+var runFunction = function() {};
+var completedRuns = -1; // Discard the any runs < 0.
+var times = [];
+
+function computeAverage(values) {
+    var sum = 0;
+    for (var i = 0; i < values.length; i++)
+        sum += values[i];
+    return sum / values.length;
+}
+
+function computeMax(values) {
+    var max = values.length ? values[0] : 0;
+    for (var i = 1; i < values.length; i++) {
+        if (max < values[i])
+            max = values[i];
+    }
+    return max;
+}
+
+function computeMedian(values) {
+    values.sort(function(a, b) { return a - b; });
+    var len = values.length;
+    if (len % 2)
+        return values[(len-1)/2];
+    return (values[len/2-1] + values[len/2]) / 2;
+}
+
+function computeMin(values) {
+    var min = values.length ? values[0] : 0;
+    for (var i = 1; i < values.length; i++) {
+        if (min > values[i])
+            min = values[i];
+    }
+    return min;
+}
+
+function computeStdev(values) {
+    var average = computeAverage(values);
+    var sumOfSquaredDeviations = 0;
+    for (var i = 0; i < values.length; ++i) {
+        var deviation = values[i] - average;
+        sumOfSquaredDeviations += deviation * deviation;
+    }
+    return Math.sqrt(sumOfSquaredDeviations / values.length);
+}
+
+function logStatistics(times) {
+    log("");
+    log("avg " + computeAverage(times));
+    log("median " + computeMedian(times));
+    log("stdev " + computeStdev(times));
+    log("min " + computeMin(times));
+    log("max " + computeMax(times));
+}
+
+function run() {
+    var start = new Date();
+    for (var i = 0; i < 10; ++i)
+        window.runFunction();
+    var time = new Date() - start;
+    completedRuns++;
+    if (completedRuns <= 0) {
+        log("Ignoring warm-up run (" + time + ")");
+    } else {
+        times.push(time);
+        log(time);
+    }
+    if (completedRuns < window.runCount) {
+        window.setTimeout(run, 0);
+    } else {
+        logStatistics(times);
+    }
+}
+
+function start(runCount, runFunction) {
+    window.runCount = runCount;
+    window.runFunction = runFunction;
+
+    log("Running " + runCount + " times");
+    run();
+}
diff --git a/WebCore/benchmarks/parser/xml-parser.html b/WebCore/benchmarks/parser/xml-parser.html
new file mode 100644
index 0000000..2e507c8
--- /dev/null
+++ b/WebCore/benchmarks/parser/xml-parser.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="resources/runner.js"></script>
+<script>
+var domParser = new DOMParser();
+var xmlArray = [];
+
+xmlArray.push('<root>');
+for (var i = 0; i < 0x7FFF; ++i)
+    xmlArray.push('<item attribute1="value1" attribute2="value2" attribute3="value3" attribute4="value4" attribute5="value5" />');
+xmlArray.push('</root>')
+var xmlData = xmlArray.join('');
+
+start(20, function() {
+    domParser.parseFromString(xmlData, "text/xml");
+});
+</script>
+</body>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list