Index: third_party/WebKit/PerformanceTests/HTMLToDOM/html-benchmark.html |
diff --git a/third_party/WebKit/PerformanceTests/HTMLToDOM/html-benchmark.html b/third_party/WebKit/PerformanceTests/HTMLToDOM/html-benchmark.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c533f254ce2188f81bcc263d2a98e1ebd2ae4e75 |
--- /dev/null |
+++ b/third_party/WebKit/PerformanceTests/HTMLToDOM/html-benchmark.html |
@@ -0,0 +1,67 @@ |
+<!DOCTYPE html> |
+ |
+<script src="../resources/runner.js"></script> |
+<script src="dom/bindings/realdomparserbindings.js"></script> |
+<script src="dom/bindings/fakedomparserbindings.js"></script> |
+<script src="dom/domparser.js"></script> |
+ |
+<script> |
+var multipler = 1; |
+ |
+var output = document.getElementById("output"); |
+ |
+var xhr = new XMLHttpRequest(); |
+xhr.open("GET", "wikipedia-markup.txt"); |
+xhr.responseType = "text"; |
+ |
+function treeSize(node) { |
+ var count = 0; |
+ for (var child = node.firstChild; child; child = child.nextSibling) |
+ count += 1 + treeSize(child); |
+ return count; |
+} |
+ |
+function benchmarkParser(name, callback) { |
+ var startTime = PerfTestRunner.now(); |
+ var fragment = callback(); |
+ var time = PerfTestRunner.now() - startTime; |
+ PerfTestRunner.logValues(name, [time], "ms"); |
+ PerfTestRunner.log("nodes " + name + " " + treeSize(fragment)); |
+} |
+ |
+PerfTestRunner.startSingleRunBenchmark( |
+ "This benchmark parses subset of HTML and adds parsed data to DOM. " + |
+ "See http://crbug.com/595492 for more information."); |
+ |
+ |
+xhr.onload = function() { |
+ var markup = ""; |
+ for (var i = 0; i < multipler; i++) |
+ markup += xhr.responseText; |
+ |
+ |
+ benchmarkParser("innerHTML", function() { |
+ element = document.createElement("template"); |
+ element.innerHTML = markup; |
+ return element.content; |
+ }); |
+ |
+ benchmarkParser("real-bindings", function() { |
+ var parser = new DomParser(markup, RealDomParserBindings); |
+ return parser.parse(); |
+ }); |
+ |
+ benchmarkParser("fake-bindings", function() { |
+ var parser = new DomParser(markup, FakeDomParserBindings); |
+ return parser.parse(); |
+ }); |
+ |
+ PerfTestRunner.finishSingleRunBenchmark(); |
+}; |
+ |
+xhr.onerror = function() { |
+ console.log(xhr.status); |
+}; |
+ |
+xhr.send(); |
+</script> |