Belt baseline

JavaScript performance comparison

Test case created by John Cockrell

Info

Baseline speed tests for Belt revisions, vs other libraries.

Preparation code

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.3/underscore-min.js"></script>
<script src="http://sjhcockrell.s3.amazonaws.com/downloads/belt.js"></script>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script>
Benchmark.prototype.setup = function() {
    var
    cloneMe = {
                a: [1,2,3],
                b: {
                    one: "one",
                    two: {
                      point1: 2.1,
                      point2: 2.2,
                      point3: 2.3
                    },
                    three: [3.1, 3.2, 3.3, 3.4]
                },
                c: function(b) { b = 1; return b },
                d: "okay",
                e: 1
            },
    x = {
                    a: [1],
                    b: {
                        one: "one",
                        two: {
                          point1: 2.1,
                          point2: 2.2,
                          point3: 2.3
                        },
                        three: [3.1, 3.2, 3.3, 3.4]
                    },
                    c: function(b) { b = 1; return b },
                    d: "okay",
                    e: 1
                },
                x2 = {
                    a: [1],
                    b: {
                        one: "one",
                        two: {
                          point1: 2.1,
                          point2: 2.2,
                          point3: 2.3
                        },
                        three: [3.1, 3.2, 3.3, 3.4]
                    },
                    c: function(b) { b = 1; return b },
                    d: "okay",
                    e: 1
                },
           
                y = {
                    a: null,
                    b: {
                        one: "one",
                        two: {
                          point1: 2.1,
                          point2: 2.2,
                          point3: 2.3
                        },
                        three: [3.1, 3.2, 3.3, 3.4]
                    },
                    c: function(b) { b = 1; return b },
                    d: "okay",
                    e: 2
                },
           
                z = {
                    a: [2],
                    b: {
                        one: "one",
                        two: {
                          point1: 2.1,
                          point2: 2.2,
                          point3: 2.3
                        },
                        three: [3.1, 3.2, 3.3, 3.4]
                    },
                    c: function(b) { b = 2; return b },
                    d: "okay",
                    e: 2
                };
};
</script>

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
B.isNumber
B.isNumber(1);
B.isNumber(new Number(1));
B.isNumber('101');
B.isNumber({});
pending…
Underscore.isNumber
_.isNumber(1);
_.isNumber(new Number(1));
_.isNumber('101');
_.isNumber({});
pending…
B.isObject
B.isObject({});
B.isObject(function(){});
B.isObject(window);
B.isObject(1);
pending…
Underscore.isObject
_.isObject({});
_.isObject(function(){});
_.isObject(window);
_.isObject(1);
pending…
Belt.isArguments
B.isArguments((function(){ return arguments }()));
B.isArguments([1,2,3]);
pending…
Underscore.isArguments
_.isArguments((function(){ return arguments }()));
_.isArguments([1,2,3]);
pending…
Belt.clone (deep clone)
B.clone(cloneMe);
B.clone(x);
pending…
jQuery.extend (deep clone)
$.extend(true, {}, cloneMe);
$.extend(true, {}, x);
 
pending…
Belt.isEqual
B.isEqual(1, 1);
B.isEqual(new Number(1), 1);
B.isEqual(x, x2);
B.isEqual(x, y);
 
pending…
Underscore.isEqual
_.isEqual(1, 1);
_.isEqual(new Number(1), 1);
_.isEqual(x, x2);
_.isEqual(x, y);
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