Guest User

Untitled

a guest
Nov 18th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Test Date#setHours</title>
  6. </head>
  7. <body>
  8. <div>
  9. <div id="user-agent"></div>
  10. <div id="results"></div>
  11. </div>
  12. <script type="text/javascript">
  13. var userAgent = document.getElementById('user-agent');
  14. var results = document.getElementById('results');
  15.  
  16. userAgent.innerHTML = window.navigator.userAgent;
  17. window.addEventListener('load', function(event) {
  18. var perf = typeof performance != 'undefined' ? performance : Date;
  19. var iterations = 2000000;
  20. setTimeout(() => {
  21. var test0 = Promise.resolve(new Date()).then(dt => {
  22. var start = perf.now();
  23.  
  24. for (var i = 0; i < iterations; ++i) {
  25. dt.setHours(i % 24);
  26. }
  27.  
  28. return perf.now() - start;
  29. });
  30. var test1 = Promise.resolve(new Date()).then(dt => {
  31. var start = perf.now();
  32.  
  33. for (var i = 0; i < iterations; ++i) {
  34. dt.setHours(i % 24, 0, 0, 0);
  35. }
  36.  
  37. return perf.now() - start;
  38. });
  39. var test2 = Promise.resolve(new Date()).then(dt => {
  40. var start = perf.now();
  41.  
  42. for (var i = 0; i < iterations; ++i) {
  43. dt.setHours(i % 24, 0, 0, 0);
  44. dt.setHours(0);
  45. }
  46.  
  47. return perf.now() - start;
  48. });
  49.  
  50. // yes, these are CPU-bound performance tests, using promise to seperate them into different IO passes.
  51. Promise.all([test0, test1, test2]).then(times => {
  52. results.innerHTML = `
  53. <p>Each of the following was for <code>${iterations}</code> iterations.</p>
  54. <dl>
  55. <dt>Set only hour</dt>
  56. <dd><code>${times[0].toFixed(4)}</code></dd>
  57. <dt>Set hour, minute, second, millisecond</dt>
  58. <dd><code>${times[1].toFixed(4)}</code></dd>
  59. <dt>Do both</dt>
  60. <dd><code>${times[2].toFixed(4)}</code></dd>
  61. </dl>
  62. `;
  63. });
  64. }, 10);
  65. });
  66. </script>
  67. </body>
  68. </html>
Add Comment
Please, Sign In to add comment