Skip to content

Commit dc17a4e

Browse files
committed
add benchmark for todomvc example
1 parent 6a8b377 commit dc17a4e

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

examples/todomvc/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,6 @@ <h1>todos</h1>
8989
<script src="../../dist/vue.js"></script>
9090
<script src="js/store.js"></script>
9191
<script src="js/app.js"></script>
92+
<script src="js/benchmark.js"></script>
9293
</body>
9394
</html>

examples/todomvc/js/benchmark.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Benchmark
2+
// add 100 items
3+
// toggle them one by one
4+
// then delete them one by one
5+
6+
// do not run when testing in PhantomJS
7+
if (navigator.userAgent.indexOf('PhantomJS') === -1) {
8+
runBenchmark()
9+
}
10+
11+
function runBenchmark () {
12+
13+
var now = window.performance && window.performance.now
14+
? function () { return window.performance.now(); }
15+
: Date.now,
16+
beforeRender = now(),
17+
render,
18+
sync,
19+
async
20+
21+
setTimeout(function () {
22+
23+
render = now() - beforeRender
24+
25+
var start = now(),
26+
newTodo = '12345'
27+
28+
for (var i = 0; i < 100; i++) {
29+
app.newTodo = newTodo
30+
app.addTodo()
31+
}
32+
setTimeout(toggle, 0)
33+
34+
function toggle () {
35+
var checkboxes = document.querySelectorAll('.toggle')
36+
for (var i = 0; i < checkboxes.length; i++) {
37+
checkboxes[i].click()
38+
}
39+
setTimeout(del, 0)
40+
}
41+
42+
function del () {
43+
var deleteButtons = document.querySelectorAll('.destroy');
44+
for (var i = 0; i < deleteButtons.length; i++) {
45+
deleteButtons[i].click()
46+
}
47+
report()
48+
}
49+
50+
function report () {
51+
sync = now() - start
52+
setTimeout(function () {
53+
async = now() - start
54+
console.log('render: ' + render.toFixed(2) + 'ms')
55+
console.log('sync: ' + sync.toFixed(2) + 'ms')
56+
console.log('async: ' + async.toFixed(2) + 'ms')
57+
}, 0)
58+
}
59+
}, 0)
60+
61+
}

0 commit comments

Comments
 (0)