Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Test Date#setHours</title>
- </head>
- <body>
- <div>
- <div id="user-agent"></div>
- <div id="results"></div>
- </div>
- <script type="text/javascript">
- var userAgent = document.getElementById('user-agent');
- var results = document.getElementById('results');
- userAgent.innerHTML = window.navigator.userAgent;
- window.addEventListener('load', function(event) {
- var perf = typeof performance != 'undefined' ? performance : Date;
- var iterations = 2000000;
- setTimeout(() => {
- var test0 = Promise.resolve(new Date()).then(dt => {
- var start = perf.now();
- for (var i = 0; i < iterations; ++i) {
- dt.setHours(i % 24);
- }
- return perf.now() - start;
- });
- var test1 = Promise.resolve(new Date()).then(dt => {
- var start = perf.now();
- for (var i = 0; i < iterations; ++i) {
- dt.setHours(i % 24, 0, 0, 0);
- }
- return perf.now() - start;
- });
- var test2 = Promise.resolve(new Date()).then(dt => {
- var start = perf.now();
- for (var i = 0; i < iterations; ++i) {
- dt.setHours(i % 24, 0, 0, 0);
- dt.setHours(0);
- }
- return perf.now() - start;
- });
- // yes, these are CPU-bound performance tests, using promise to seperate them into different IO passes.
- Promise.all([test0, test1, test2]).then(times => {
- results.innerHTML = `
- <p>Each of the following was for <code>${iterations}</code> iterations.</p>
- <dl>
- <dt>Set only hour</dt>
- <dd><code>${times[0].toFixed(4)}</code></dd>
- <dt>Set hour, minute, second, millisecond</dt>
- <dd><code>${times[1].toFixed(4)}</code></dd>
- <dt>Do both</dt>
- <dd><code>${times[2].toFixed(4)}</code></dd>
- </dl>
- `;
- });
- }, 10);
- });
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment