perf.js 2.4 KB

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