2011-01-27 Eric Seidel <eric@webkit.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Feb 2011 23:32:39 +0000 (23:32 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Feb 2011 23:32:39 +0000 (23:32 +0000)
        Reviewed by Darin Adler.

        HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
        https://bugs.webkit.org/show_bug.cgi?id=48719

        It's unclear exactly what the Peacekeeper benchmark is testing,
        because I haven't found a way to run it myself.

        However, I constructed a benchmark which shows at least one possible slow point.
        The HTML5 spec talks about creating a new document for every time we use
        the fragment parsing algorithm.  Document() it turns out, it a huge bloated
        mess, and the constructor and destructor do a huge amount of work.

        * benchmarks/parser/tiny-innerHTML.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@77426 268f45cc-cd09-0410-ab3c-d52691b4dbfc

PerformanceTests/Parser/ChangeLog
PerformanceTests/Parser/tiny-innerHTML.html [new file with mode: 0644]

index d3bc5c6..48d5eae 100644 (file)
@@ -1,3 +1,20 @@
+2011-01-27  Eric Seidel  <eric@webkit.org>
+
+        Reviewed by Darin Adler.
+
+        HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
+        https://bugs.webkit.org/show_bug.cgi?id=48719
+
+        It's unclear exactly what the Peacekeeper benchmark is testing,
+        because I haven't found a way to run it myself.
+
+        However, I constructed a benchmark which shows at least one possible slow point.
+        The HTML5 spec talks about creating a new document for every time we use
+        the fragment parsing algorithm.  Document() it turns out, it a huge bloated
+        mess, and the constructor and destructor do a huge amount of work.
+
+        * benchmarks/parser/tiny-innerHTML.html: Added.
+
 2011-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r77050.
diff --git a/PerformanceTests/Parser/tiny-innerHTML.html b/PerformanceTests/Parser/tiny-innerHTML.html
new file mode 100644 (file)
index 0000000..b357cf1
--- /dev/null
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="resources/runner.js"></script>
+<script>
+start(20, function() {
+    var testDiv = document.createElement("div");
+    testDiv.style.display = "none";
+    document.body.appendChild(testDiv);
+    for (var x = 0; x < 100000; x++) {
+        testDiv.innerHTML = "This is a tiny HTML document";
+    }
+    document.body.removeChild(testDiv);
+});
+</script>
+</body>