Memoized Function

JavaScript performance comparison

Test case created by azu

Preparation code

<script>
  // Memoized Function
  var fibonacci = function() {
   var memo = [0, 1];
   var fib = function(n) {
    var result = memo[n];
    if (typeof result != "number") {
     result = fib(n - 1) + fib(n - 2);
     memo[n] = result;
    }
    return result;
   };
   return fib;
  }();
  // nonmemoized function
  var fib = function(n) {
   return n < 2 ? n : fib(n - 1) + fib(n - 2);
  };
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
nonmemoized function
for (var i = 0; i <= 10; i++) {
 fib(i);
}
pending…
Memoized Function
for (var i = 0; i <= 10; i++) {
 fibonacci(i)
}
pending…

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

Compare results of other browsers

0 comments

Add a comment