perf.js 2.2 KB

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