Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Unified Diff: third_party/WebKit/PerformanceTests/HTMLToDOM/html-benchmark.html

Issue 2189533004: Add blink_perf.html_to_dom benchmark. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes to the original benchmark Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698