-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathperf.js
78 lines (65 loc) · 2.19 KB
/
perf.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
setTimeout(function () {
if (window.isPhantom) return
// Initial load & render metrics
metrics.afterRenderAsync = now()
console.log('Vue load : ' + (metrics.afterLoad - metrics.beforeLoad).toFixed(2) + 'ms')
console.log('Render sync : ' + (metrics.afterRender - metrics.beforeRender).toFixed(2) + 'ms')
console.log('Render async : ' + (metrics.afterRenderAsync - metrics.beforeRender).toFixed(2) + 'ms')
console.log('Total sync : ' + (metrics.afterRender - metrics.beforeLoad).toFixed(2) + 'ms')
console.log('Total async : ' + (metrics.afterRenderAsync - metrics.beforeLoad).toFixed(2) + 'ms')
// Benchmark
// add 100 items
// toggle them one by one
// then delete them one by one
var benchSetting = window.location.search.match(/\bbenchmark=(\d+)/)
if (!benchSetting) return
var itemsToAdd = +benchSetting[1],
render,
bench,
addTime,
toggleTime,
removeTime
var start = now(),
last
add()
function add() {
last = now()
var newTodo = '12345',
todoInput = document.getElementById('new-todo')
for (var i = 0; i < itemsToAdd; i++) {
var keyupEvent = document.createEvent('Event');
keyupEvent.initEvent('keyup', true, true);
keyupEvent.keyCode = 13;
app.newTodo = 'Something to do ' + i;
todoInput.dispatchEvent(keyupEvent)
}
setTimeout(toggle, 0)
}
function toggle () {
addTime = now() - last
var checkboxes = document.querySelectorAll('.toggle')
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].click()
}
last = now()
setTimeout(remove, 0)
}
function remove () {
toggleTime = now() - last
var deleteButtons = document.querySelectorAll('.destroy');
for (var i = 0; i < deleteButtons.length; i++) {
deleteButtons[i].click()
}
last = now()
setTimeout(report, 0)
}
function report () {
bench = now() - start
removeTime = now() - last
console.log('\nBenchmark x ' + itemsToAdd)
console.log('add : ' + addTime.toFixed(2) + 'ms')
console.log('toggle : ' + toggleTime.toFixed(2) + 'ms')
console.log('remove : ' + removeTime.toFixed(2) + 'ms')
console.log('total : ' + bench.toFixed(2) + 'ms')
}
}, 0)