All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.perf.benchmarks.js Maven / Gradle / Ivy

Go to download

A virtual DOM library with focus on simplicity, modularity, powerful features and performance.

The newest version!
// Has not been maintained for a while.
/* eslint-disable */
var Benchmark = require("benchmark");
var a = require("../snabbdom.js");
var b = require("../oldsnabbdom.js");

global.a = a;
global.b = b;

var suite = new Benchmark.Suite();

a.spanNum = function spanNum(n) {
  return a.h("span", { key: n }, n.toString());
};

b.spanNum = function spanNum(n) {
  return b.h("span", { key: n }, n.toString());
};

var elms = (global.elms = 10);
var arr = (global.arr = []);
for (var n = 0; n < elms; ++n) {
  arr[n] = n;
}

document.addEventListener("DOMContentLoaded", function () {
  var elm = (global.elm = document.getElementById("container"));
  // add tests
  suite
    .add("a/ insert first", {
      setup: function () {
        var vnode1 = a.h("div", arr.map(a.spanNum));
        var vnode2 = a.h("div", ["new"].concat(arr).map(a.spanNum));
      },
      fn: function () {
        var emptyNode = a.emptyNodeAt(elm);
        a.patch(emptyNode, vnode1);
        a.patch(vnode1, vnode2);
        a.patch(vnode2, a.emptyNode);
      },
    })
    .add("b/ insert first", {
      setup: function () {
        var vnode1 = b.h("div", arr.map(b.spanNum));
        var vnode2 = b.h("div", ["new"].concat(arr).map(b.spanNum));
      },
      fn: function () {
        var emptyNode = b.emptyNodeAt(elm);
        b.patch(emptyNode, vnode1);
        b.patch(vnode1, vnode2);
        b.patch(vnode2, b.emptyNode);
      },
    })
    // add listeners
    .on("cycle", function (event) {
      console.log(String(event.target));
    })
    .on("complete", function () {
      console.log("Fastest is " + this.filter("fastest").pluck("name"));
    })
    // run async
    .run({ async: true });
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy