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

Side by Side Diff: samples/third_party/dromaeo/tests/dom-query-htmlfast.dart

Issue 9732019: dart:html perf optimization based on runing Dromaeo benchmarks (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Respond to code review comments Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 #library("dom_query");
2 #import("dart:html");
3 #import('../common/common.dart');
4 #import('runner.dart');
5
6 void main() {
7 final int num = 40;
8
9 // Try to force real results.
10 var ret;
11
12 String html = document.body.innerHTML;
13
14 new Suite(window, 'dom-query')
15 .prep(() {
16 html = BenchUtil.replaceAll(html, 'id="test(\\w).*?"', (Match match) {
17 final group = match.group(1);
18 return 'id="test${group}${num}"';
19 });
20 html = BenchUtil.replaceAll(html, 'name="test.*?"', (Match match) {
21 return 'name="test${num}"';
22 });
23 html = BenchUtil.replaceAll(html, 'class="foo.*?"', (Match match) {
24 return 'class="foo test${num} bar"';
25 });
26 final div = new Element.tag('div');
27 div.innerHTML = html;
28 document.body.$dom_appendChild(div);
29 })
30 .test('getElementById', () {
31 for (int i = 0; i < num * 30; i++) {
32 ret = document.$dom_getElementById('testA$num').hidden;
33 ret = document.$dom_getElementById('testB$num').hidden;
34 ret = document.$dom_getElementById('testC$num').hidden;
35 ret = document.$dom_getElementById('testD$num').hidden;
36 ret = document.$dom_getElementById('testE$num').hidden;
37 ret = document.$dom_getElementById('testF$num').hidden;
38 }
39 })
40 .test('getElementById (not in document)', () {
41 for (int i = 0; i < num * 30; i++) {
42 ret = document.$dom_getElementById('testA');
43 ret = document.$dom_getElementById('testB');
44 ret = document.$dom_getElementById('testC');
45 ret = document.$dom_getElementById('testD');
46 ret = document.$dom_getElementById('testE');
47 ret = document.$dom_getElementById('testF');
48 }
49 })
50 .test('getElementsByTagName(div)', () {
51 for (int i = 0; i < num; i++) {
52 final elems = document.$dom_getElementsByTagName('div');
53 for (int j = 0, len = elems.length; j < len; j++) {
54 ret = elems[j].hidden;
55 }
56 }
57 })
58 .test('getElementsByTagName(p)', () {
59 for (int i = 0; i < num; i++) {
60 final elems = document.$dom_getElementsByTagName('p');
61 for (int j = 0, len = elems.length; j < len; j++) {
62 ret = elems[j].hidden;
63 }
64 }
65 })
66 .test('getElementsByTagName(a)', () {
67 for (int i = 0; i < num; i++) {
68 final elems = document.$dom_getElementsByTagName('a');
69 for (int j = 0, len = elems.length; j < len; j++) {
70 ret = elems[j].hidden;
71 }
72 }
73 })
74 .test('getElementsByTagName(*)', () {
75 for (int i = 0; i < num; i++) {
76 var elems = document.$dom_getElementsByTagName('*');
77 for (int j = 0, len = elems.length; j < len; j++) {
78 ret = elems[j].hidden;
79 }
80 }
81 })
82 .test('getElementsByTagName (not in document)', () {
83 for (int i = 0; i < num; i++) {
84 final elems = document.$dom_getElementsByTagName('strong');
85 for (int j = 0, len = elems.length; j < len; j++) {
86 ret = elems[j].hidden;
87 }
88 }
89 })
90 .test('getElementsByName', () {
91 for (int i = 0; i < num * 20; i++) {
92 var elems = document.$dom_getElementsByName('test$num');
93 ret = elems[elems.length-1].nodeType;
94 elems = document.$dom_getElementsByName('test$num');
95 ret = elems[elems.length-1].nodeType;
96 elems = document.$dom_getElementsByName('test$num');
97 ret = elems[elems.length-1].nodeType;
98 elems = document.$dom_getElementsByName('test$num');
99 ret = elems[elems.length-1].nodeType;
100 }
101 })
102 .test('getElementsByName (not in document)', () {
103 for (int i = 0; i < num * 20; i++) {
104 ret = document.$dom_getElementsByName('test').length == 0;
105 ret = document.$dom_getElementsByName('test').length == 0;
106 ret = document.$dom_getElementsByName('test').length == 0;
107 ret = document.$dom_getElementsByName('test').length == 0;
108 ret = document.$dom_getElementsByName('test').length == 0;
109 }
110 })
111 .end();
112 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698