Search item array vs literal

JavaScript performance comparison

Test case created by Pencroff

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var linearSearch = function (value, colection, lenght) {
                    var undef, i;
                    for (i = 0; i < lenght; i += 1) {
                        if (colection[i] === value) {
                            return i;
                        }
                    }
                    return -1;
                },
    binarySearch = function (value, colection, lenght) {
                    var first = 0,
                        last = lenght - 1,
                        mid = (first + (last - first) / 2) >> 0;
                    if (lenght === 0 || colection[first] > value || colection[last] < value) {
                        return -1;
                    }
                    while (first < last) {
                        if (value <= colection[mid]) {
                            last = mid;
                        } else {
                            first = mid + 1;
                        }
                        mid = (first + (last - first) / 2) >> 0;
                    }
                    if (colection[last] !== value) {
                        return -1;
                    }
                    return last;
                },
    testArray = [5, 7, 9, 15, 18, 21, 29, 36, 45, 57],
                    testLiteral = {
                        '0': 5,
                        '1': 7,
                        '2': 9,
                        '3': 15,
                        '4': 18,
                        '5': 21,
                        '6': 29,
                        '7': 36,
                        '8': 45,
                        '9': 57
                    },
    index;
};
</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
Native
index = testArray.indexOf(45);
pending…
Linear Search Array
index = linearSearch(45, testArray, 10);
pending…
Linear Search Literal
index = linearSearch(45, testLiteral, 10);
pending…
Binary Search Array
index = binarySearch(45, testArray, 10);
pending…
Binary Search Literal
index = binarySearch(45, testLiteral, 10);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment