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