Script Preparation code:
x
 
var arrayHandlers = [];
var objectHandlers = {};
var handlersCount = 100;
var functionHandlersToFind = [];
var hashesToFind = [];
var generateHash = function(ix) {
    return 'hdl' + ix;
}
var createHandler = function() {
    return function(data) {
        return "#Count:" + data;
    }
};
for (let i = 0; i < handlersCount; i++) {
    let theNewHandler = createHandler();
    arrayHandlers.push(theNewHandler);
    functionHandlersToFind.push(theNewHandler);
    let generatedHash = generateHash(i);
    objectHandlers[generatedHash] = theNewHandler;
    hashesToFind.push(generatedHash);
}
Tests:
  • Find from array using function reference

     
    functionHandlersToFind.forEach((fnHandler) => arrayHandlers.find(handler => handler === fnHandler))
  • Find by object keys

     
    hashesToFind.forEach((hash, ix) => objectHandlers[hash])
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Find from array using function reference
    Find by object keys

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Chrome 132 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Find from array using function reference 189398.4 Ops/sec
Find by object keys 1593479.2 Ops/sec