fib nomal vs asm.js (v10)

Revision 10 of this benchmark created on


Setup

var m = new Int32Array(1024);
  m[0] = 1;
  sp = 1;
  
  var fibTyped = function fib(x) {
      sp += 2;
      if (m[x] < 4) return 0;
      m[sp - 2] = m[x] - 2;
      m[sp - 1] = m[x] - 1
      var t = fib(sp - 2) + fib(sp - 1);
      sp -= 2;
      return t;
  }
  
  var fibNomal = function fib(x) {
    if (x < 3) return 1;
    return fib(x - 2) + fib(x - 1);
  };
  
  var fibAsmjs = (function () {

    'use asm';
    function fib(x) {
      x = x|0;
      if ((x|0) < 3) return 1;
      return ((fib((x - 2)|0)|0) + (fib((x - 1)|0)|0))|0;
    }
    return fib;
  })();

Test runner

Ready to run.

Testing in
TestOps/sec
fib nomal
fibNomal(20);
ready
fib asm.js
fibAsmjs(20);
ready
fib TypedArray
fibTyped(20);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.