Skip to content

Commit

Permalink
add benchmark for todomvc example
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Dec 22, 2013
1 parent 6a8b377 commit dc17a4e
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
1 change: 1 addition & 0 deletions examples/todomvc/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,6 @@ <h1>todos</h1>
<script src="../../dist/vue.js"></script>
<script src="js/store.js"></script>
<script src="js/app.js"></script>
<script src="js/benchmark.js"></script>
</body>
</html>
61 changes: 61 additions & 0 deletions examples/todomvc/js/benchmark.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Benchmark
// add 100 items
// toggle them one by one
// then delete them one by one

// do not run when testing in PhantomJS
if (navigator.userAgent.indexOf('PhantomJS') === -1) {
runBenchmark()
}

function runBenchmark () {

var now = window.performance && window.performance.now
? function () { return window.performance.now(); }
: Date.now,
beforeRender = now(),
render,
sync,
async

setTimeout(function () {

render = now() - beforeRender

var start = now(),
newTodo = '12345'

for (var i = 0; i < 100; i++) {
app.newTodo = newTodo
app.addTodo()
}
setTimeout(toggle, 0)

function toggle () {
var checkboxes = document.querySelectorAll('.toggle')
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].click()
}
setTimeout(del, 0)
}

function del () {
var deleteButtons = document.querySelectorAll('.destroy');
for (var i = 0; i < deleteButtons.length; i++) {
deleteButtons[i].click()
}
report()
}

function report () {
sync = now() - start
setTimeout(function () {
async = now() - start
console.log('render: ' + render.toFixed(2) + 'ms')
console.log('sync: ' + sync.toFixed(2) + 'ms')
console.log('async: ' + async.toFixed(2) + 'ms')
}, 0)
}
}, 0)

}

0 comments on commit dc17a4e

Please sign in to comment.