-
-
Save ThaisRobba/b8d20031108ec0b39f94e00061133d2e to your computer and use it in GitHub Desktop.
For loop vs For ... of benchmark (http://jsbench.github.io/#b8d20031108ec0b39f94e00061133d2e) #jsbench #jsperf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <title>For loop vs For ... of benchmark</title> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
| <script src="./suite.js"></script> | |
| </head> | |
| <body> | |
| <h1>Open the console to view the results</h1> | |
| <h2><code>cmd + alt + j</code> or <code>ctrl + alt + j</code></h2> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "use strict"; | |
| (function (factory) { | |
| if (typeof Benchmark !== "undefined") { | |
| factory(Benchmark); | |
| } else { | |
| factory(require("benchmark")); | |
| } | |
| })(function (Benchmark) { | |
| var suite = new Benchmark.Suite; | |
| Benchmark.prototype.setup = function () { | |
| var array = []; | |
| for (var i = 1000000; i-- ;) array.push(i); | |
| var sum = 0 | |
| function add( n ) { | |
| sum += n; | |
| } | |
| function addFrom( array, i ) { | |
| sum += array[i]; | |
| } | |
| }; | |
| suite.add("Loop, function call", function () { | |
| // Loop, function call | |
| for ( var i = 1; i <= array.length; i++ ) { | |
| add( array[i] ); | |
| } | |
| }); | |
| suite.add("for (var value of array) {", function () { | |
| for (var value of array) { | |
| add(value) | |
| } | |
| }); | |
| suite.on("cycle", function (evt) { | |
| console.log(" - " + evt.target); | |
| }); | |
| suite.on("complete", function (evt) { | |
| console.log(new Array(30).join("-")); | |
| var results = evt.currentTarget.sort(function (a, b) { | |
| return b.hz - a.hz; | |
| }); | |
| results.forEach(function (item) { | |
| console.log((idx + 1) + ". " + item); | |
| }); | |
| }); | |
| console.log("For loop vs For ... of benchmark"); | |
| console.log(new Array(30).join("-")); | |
| suite.run(); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment