hacked if test vs plain if test
just for fun
Date tested:
6 years ago
User agent:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Test name
Executions per second
plain if
21648912.0 Ops/sec
hacked if
12364832.0 Ops/sec
Benchmark definition (click to collapse):
Script Preparation code:
function sel1(name) { var l = name.length; var ch = name[0]; if (l==3) { if (ch === 'o') { if (name === 'one') return 1; } if (ch === 't') { if (name === 'two') return 2; if (name === 'ten') return 10; } if (ch === 's') { if (name === 'six') return 6; } } if (l==4) { if (ch === 'f') { if (name === 'four') return 4; if (name === 'five') return 5; } if (ch === 'n') { if (name === 'nine') return 9; } } if (l==5) { if (ch === 't') { if (name === 'three') return 3; } if (ch === 's') { if (name === 'seven') return 7; } if (ch === 'e') { if (name === 'eight') return 8; } } } function sel2(name) { if (name === 'one') return 1; if (name === 'two') return 2; if (name === 'ten') return 10; if (name === 'six') return 6; if (name === 'four') return 4; if (name === 'five') return 5; if (name === 'nine') return 9; if (name === 'three') return 3; if (name === 'seven') return 7; if (name === 'eight') return 8; }
Tests:
plain if
sel2('one') sel2('two') sel2('three') sel2('four') sel2('five') sel2('six') sel2('seven') sel2('eight') sel2('nine') sel2('ten')
hacked if
sel1('one') sel1('two') sel1('three') sel1('four') sel1('five') sel1('six') sel1('seven') sel1('eight') sel1('nine') sel1('ten')
Open this result on MeasureThat.net