Last active
October 23, 2019 05:40
-
-
Save jridgewell/7251ec1d4edb2fdab8f0d748671613f1 to your computer and use it in GitHub Desktop.
Removing nodes from a parent #jsbench #jsperf (https://jsbench.github.io/#7251ec1d4edb2fdab8f0d748671613f1) #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>Removing nodes from a parent #jsbench #jsperf</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 () { | |
| const template = document.createElement('template'); | |
| for (let i = 0; i < 1000; i++) { | |
| template.content.appendChild(document.createElement('span')); | |
| } | |
| function frag() { | |
| return template.content.cloneNode(true); | |
| } | |
| }; | |
| suite.add("Forwards", function () { | |
| // Forwards | |
| let firstChild; | |
| const f = frag(); | |
| while ((firstChild = f.firstChild)) { | |
| f.removeChild(firstChild); | |
| } | |
| }); | |
| suite.add("Backwards", function () { | |
| // Backwards | |
| let lastChild; | |
| const f = frag(); | |
| while ((lastChild = f.lastChild)) { | |
| f.removeChild(lastChild); | |
| } | |
| }); | |
| 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("Removing nodes from a parent #jsbench #jsperf"); | |
| 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