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

Side by Side Diff: third_party/WebKit/Source/benchmarks/html-benchmark.html

Issue 2197923002: Not for landing: Profile Elliott's parsing benchmark Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: temp Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2
3 <style>
4 section {
5 border: 2px solid red;
6 margin: 16px;
7 padding: 8px;
8 }
9 </style>
10
11 <script src="dom/bindings/realdomparserbindings.js"></script>
12 <script src="dom/bindings/fakedomparserbindings.js"></script>
13 <script src="dom/domparser.js"></script>
14
15 <script>
16 var multipler = 1;
17
18 var output = document.getElementById("output");
19
20 var xhr = new XMLHttpRequest();
21 xhr.open("GET", "wikipedia-markup.txt");
22 xhr.responseType = "text";
23
24 function treeSize(node) {
25 var count = 0;
26 for (var child = node.firstChild; child; child = child.nextSibling)
27 count += 1 + treeSize(child);
28 return count;
29 }
30
31 function benchmarkParser(name, callback) {
32 document.body.focus();
33 benchmarkParserInternal(name, callback);
34 document.body.blur();
35 gc(); gc(); gc();
36 }
37
38 function benchmarkParserInternal(name, callback) {
39 var section = document.createElement("section");
40 var startTime = Date.now();
41 var timeRecord = callback();
42 var time = Date.now() - startTime;
43 var output = name + " time: " + time + "ms, createElement: " + timeRecord["c reateElement"] + "ms, createText: " + timeRecord["createText"] + "ms, appendChil d: " + timeRecord["appendChild"] + "ms, setAttribute: " + timeRecord["setAttribu te"] + "ms";
44 section.appendChild(document.createTextNode(output));
45 document.body.appendChild(section);
46 }
47
48 xhr.onload = function() {
49 var markup = "";
50 for (var i = 0; i < multipler; i++)
51 markup += xhr.responseText;
52
53 for (var i = 0; i < 10; i++) {
54 benchmarkParser("innerHTML", function() {
55 element = document.createElement("template");
56 element.innerHTML = markup;
57 return {};
58 });
59 }
60
61 for (var i = 0; i < 10; i++) {
62 benchmarkParser("Real bindings", function() {
63 var parser = new DomParser(markup, RealDomParserBindings);
64 return parser.parse();
65 });
66 }
67 };
68
69 xhr.onerror = function() {
70 console.log(xhr.status);
71 };
72
73 xhr.send();
74 </script>
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/benchmarks/dom/domparser.js ('k') | third_party/WebKit/Source/benchmarks/test-markup.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698