Skip to content

Commit 864bf6e

Browse files
committed
Add performance test for binding-expressions
1 parent 489ab64 commit 864bf6e

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

test/perf/binding-expressions.html

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
6+
<script src="../../bower_components/perf-tester/perf.js"></script>
7+
<script src="../../bower_components/webcomponentsjs/webcomponents-lite.js"></script>
8+
<link rel="import" href="../../polymer.html">
9+
</head>
10+
11+
<body>
12+
13+
<!-- <template>
14+
{{compute(alaksjflkasjflkasjflkasjlfkajslkfjaslkfjaaaaaaaaaaaaaaaaaaaaaaaa)]}
15+
</template>
16+
--> <!-- {{compute(tricky, 'literal\,\'zot\'', this.has.long.log.lo)]} -->
17+
18+
<template>
19+
<span>{{foo}}</span> <span>{{foo.bar}}</span> <span>{{foo.bar.zot}}</span>
20+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
21+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
22+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
23+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
24+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
25+
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
26+
<span>{{compute(tricky, 'literal\,\'zot\'')}}</span>
27+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
28+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
29+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
30+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
31+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
32+
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
33+
<span>{{compute(tricky, 'literal\,\'zot\'', this.has.a.bogus.ending.bracket)]}</span>
34+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
35+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
36+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
37+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
38+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
39+
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
40+
<div class$="{{compute(a, b, c,d,e,f,g,h,i)}}">
41+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
42+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
43+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
44+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
45+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
46+
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
47+
<span>{{bindings.and.stuff}}</span>
48+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
49+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
50+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
51+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
52+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
53+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
54+
<div id="zot"><span>[[computeFn(a, 'b', c, "d", 999)]]</span> literal <span>{{a.b}}</span> literally</div>
55+
</div>
56+
</template>
57+
58+
<script>
59+
var COUNT = 1000;
60+
var templates = [];
61+
var template = document.querySelector('template');
62+
for (var i=0; i<COUNT; i++) {
63+
templates[i] = template.cloneNode(true);
64+
}
65+
console.perf();
66+
for (var i=0; i<COUNT; i++) {
67+
const klass = Polymer({
68+
is: 'test-el-' + i,
69+
_template: templates[i]
70+
});
71+
new klass();
72+
}
73+
console.perfEnd();
74+
</script>
75+
76+
</body>
77+
</html>

test/perf/perf-tests.html

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
5+
<meta charset="utf-8">
6+
<script src="../../bower_components/webcomponentsjs/webcomponents-lite.js"></script>
7+
<script src="../../bower_components/perf-tester/perf-tester.js"></script>
8+
<link rel="import" href="../../polymer.html">
9+
<style>
10+
summary {
11+
font-family: sans-serif;
12+
font-size: 1.5em;
13+
}
14+
</style>
15+
16+
</head>
17+
<body>
18+
<summary>Perf is go.</summary>
19+
<perf-tester runs="25"></perf-tester>
20+
21+
<script>
22+
document.querySelector('perf-tester').tests = [
23+
'binding-expressions.html'
24+
];
25+
</script>
26+
27+
</body>

0 commit comments

Comments
 (0)