JSFiddle - React, Tailwind, and code Playground

by ShukantPal

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/2.1.4/benchmark.js"></script>
<script src="https://unpkg.com/html-console-output"></script>
<!DOCTYPE html>
<html>

  <head>
    <title>Bounds speedup benchmark</title>
  </head>

  <body>
    <script type="text/javascript" src="https://pixijs.download/v5.2.1/pixi.js"></script>
    <script>
      window.PIXI_DEV = window.PIXI;
      window.PIXI = null;
    </script>
    <script src="https://pixijs.download/dev-bounds-propagation/pixi.js"></script>
    <script>
      window.PIXI_FIX = window.PIXI;
      window.PIXI = null;

    </script>
  </body>

</html>

JavaScript

function testAfter() {
  var PIXI = window.PIXI_FIX;

  var root = new PIXI.Container();

  for (var i = 0; i < 16; i++) {
    var p = root.addChild(new PIXI.Container());

    for (var j = 0; j < 16; j++) {
      var c = p.addChild(new PIXI.Container());
    }
  }

  for (var z = 0; z < 128; z++) {
    root.getLocalBounds();
  }
}

function testBefore() {
  var PIXI = window.PIXI_DEV;

  var root = new PIXI.Container();

  for (var i = 0; i < 16; i++) {
    var p = root.addChild(new PIXI.Container());

    for (var j = 0; j < 16; j++) {
      var c = p.addChild(new PIXI.Container());
    }
  }

  for (var z = 0; z < 128; z++) {
    root.getLocalBounds();
  }
}

var suite = new Benchmark.Suite();

suite.add('testBefore', testBefore);
suite.add('testAfter', testAfter);
suite.on('cycle', function(event) {
    console.log(String(event.target));
  })
  .on('complete', function() {
    console.log('Fastest is ' + this.filter('fastest').map('name'));
  })

suite.run({
  async: false
})