| 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>
|
|
|