Test name | Executions per second |
---|---|
Normal access | 2431450.8 Ops/sec |
Conditional index-swapped access | 1713081.9 Ops/sec |
arr = new Array(100).fill(null).map((_, i) => new Array(100).fill(null).map((_, j) => i + "," + j));
objA = {};
objB = {};
objs = [objA, objB];
randomValues = new Array(10000).fill(null).map(() => [Math.floor(Math.random()*100), Math.floor(Math.random()*100), objs[Math.floor(Math.random()*2)]]);
function getValue(obj, a , b) {
if(obj === objA)
return arr[a][b];
else
return arr[b][a];
}
const [a, b] = randomValues[Math.floor(Math.random()*10000)];
arr[a][b];
const [a, b, obj] = randomValues[Math.floor(Math.random()*10000)];
getValue(obj, a, b);