benchmarks.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Has not been maintained for a while.
  2. /* eslint-disable */
  3. var Benchmark = require("benchmark");
  4. var a = require("../snabbdom.js");
  5. var b = require("../oldsnabbdom.js");
  6. global.a = a;
  7. global.b = b;
  8. var suite = new Benchmark.Suite();
  9. a.spanNum = function spanNum(n) {
  10. return a.h("span", { key: n }, n.toString());
  11. };
  12. b.spanNum = function spanNum(n) {
  13. return b.h("span", { key: n }, n.toString());
  14. };
  15. var elms = (global.elms = 10);
  16. var arr = (global.arr = []);
  17. for (var n = 0; n < elms; ++n) {
  18. arr[n] = n;
  19. }
  20. document.addEventListener("DOMContentLoaded", function () {
  21. var elm = (global.elm = document.getElementById("container"));
  22. // add tests
  23. suite
  24. .add("a/ insert first", {
  25. setup: function () {
  26. var vnode1 = a.h("div", arr.map(a.spanNum));
  27. var vnode2 = a.h("div", ["new"].concat(arr).map(a.spanNum));
  28. },
  29. fn: function () {
  30. var emptyNode = a.emptyNodeAt(elm);
  31. a.patch(emptyNode, vnode1);
  32. a.patch(vnode1, vnode2);
  33. a.patch(vnode2, a.emptyNode);
  34. },
  35. })
  36. .add("b/ insert first", {
  37. setup: function () {
  38. var vnode1 = b.h("div", arr.map(b.spanNum));
  39. var vnode2 = b.h("div", ["new"].concat(arr).map(b.spanNum));
  40. },
  41. fn: function () {
  42. var emptyNode = b.emptyNodeAt(elm);
  43. b.patch(emptyNode, vnode1);
  44. b.patch(vnode1, vnode2);
  45. b.patch(vnode2, b.emptyNode);
  46. },
  47. })
  48. // add listeners
  49. .on("cycle", function (event) {
  50. console.log(String(event.target));
  51. })
  52. .on("complete", function () {
  53. console.log("Fastest is " + this.filter("fastest").pluck("name"));
  54. })
  55. // run async
  56. .run({ async: true });
  57. });