var switch_func = term => {
switch (term) {
case 'one':
return 1;
case 'two':
return 2;
case 'three':
return 3;
case 'four':
return 4;
case 'five':
return 5;
case 'six':
return 6;
case 'seven':
return 7;
case 'eight':
return 8;
case 'nine':
return 9;
case 'ten':
return 10;
case 'eleven':
return 11;
case 'twelve':
return 12;
case 'thirteen':
return 13;
case 'fourteen':
return 14;
case 'fifteen':
return 15;
case 'sixteen':
return 16;
case 'seventeen':
return 17;
case 'eighteen':
return 18;
case 'nineteen':
return 19;
case 'twenty':
return 20;
}
};
var ifelse_func = term => {
if (term === 'one') {
return 1;
} else if (term === 'two') {
return 2;
} else if (term === 'three') {
return 3;
} else if (term === 'four') {
return 4;
} else if (term === 'five') {
return 5;
} else if (term === 'six') {
return 6;
} else if (term === 'seven') {
return 7;
} else if (term === 'eight') {
return 8;
} else if (term === 'nine') {
return 9;
} else if (term === 'ten') {
return 10;
} else if (term === 'eleven') {
return 11;
} else if (term === 'twelve') {
return 12;
} else if (term === 'thirteen') {
return 13;
} else if (term === 'fourteen') {
return 14;
} else if (term === 'fifteen') {
return 15;
} else if (term === 'sixteen') {
return 16;
} else if (term === 'seventeen') {
return 17;
} else if (term === 'eighteen') {
return 18;
} else if (term === 'nineteen') {
return 19;
} else if (term === 'twenty') {
return 20;
}
};
var lookup_func = term => {
var lookup = {
one: 1,
two: 2,
three: 3,
four: 4,
five: 5,
six: 6,
seven: 7,
eight: 8,
nine: 9,
ten: 10,
eleven: 11,
twelve: 12,
thirteen: 13,
fourteen: 14,
fifteen: 15,
sixteen: 16,
seventeen: 17,
eighteen: 18,
nineteen: 19,
twenty: 20,
};
return lookup[term];
};
var cached_lookup = {
one: 1,
two: 2,
three: 3,
four: 4,
five: 5,
six: 6,
seven: 7,
eight: 8,
nine: 9,
ten: 10,
eleven: 11,
twelve: 12,
thirteen: 13,
fourteen: 14,
fifteen: 15,
sixteen: 16,
seventeen: 17,
eighteen: 18,
nineteen: 19,
twenty: 20,
};
var cached_lookup_func = term => cached_lookup[term];
switch_func('one');
switch_func('seven');
switch_func('twelve');
switch_func('ten');
switch_func('nineteen');
switch_func('three');
switch_func('thirteen');
switch_func('eight');
switch_func('seventeen');
switch_func('two');
switch_func('five');
switch_func('eighteen');
switch_func('twenty');
switch_func('nine');
switch_func('eleven');
switch_func('fourteen');
switch_func('six');
switch_func('fifteen');
switch_func('sixteen');
switch_func('four');
ifelse_func('one');
ifelse_func('seven');
ifelse_func('twelve');
ifelse_func('ten');
ifelse_func('nineteen');
ifelse_func('three');
ifelse_func('thirteen');
ifelse_func('eight');
ifelse_func('seventeen');
ifelse_func('two');
ifelse_func('five');
ifelse_func('eighteen');
ifelse_func('twenty');
ifelse_func('nine');
ifelse_func('eleven');
ifelse_func('fourteen');
ifelse_func('six');
ifelse_func('fifteen');
ifelse_func('sixteen');
ifelse_func('four');
lookup_func('one');
lookup_func('seven');
lookup_func('twelve');
lookup_func('ten');
lookup_func('nineteen');
lookup_func('three');
lookup_func('thirteen');
lookup_func('eight');
lookup_func('seventeen');
lookup_func('two');
lookup_func('five');
lookup_func('eighteen');
lookup_func('twenty');
lookup_func('nine');
lookup_func('eleven');
lookup_func('fourteen');
lookup_func('six');
lookup_func('fifteen');
lookup_func('sixteen');
lookup_func('four');
cached_lookup_func('one');
cached_lookup_func('seven');
cached_lookup_func('twelve');
cached_lookup_func('ten');
cached_lookup_func('nineteen');
cached_lookup_func('three');
cached_lookup_func('thirteen');
cached_lookup_func('eight');
cached_lookup_func('seventeen');
cached_lookup_func('two');
cached_lookup_func('five');
cached_lookup_func('eighteen');
cached_lookup_func('twenty');
cached_lookup_func('nine');
cached_lookup_func('eleven');
cached_lookup_func('fourteen');
cached_lookup_func('six');
cached_lookup_func('fifteen');
cached_lookup_func('sixteen');
cached_lookup_func('four');
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
switch | |
if/else | |
lookup | |
pre-cached lookup |
Test name | Executions per second |
---|---|
switch | 3708830.8 Ops/sec |
if/else | 3217957.2 Ops/sec |
lookup | 2005427.0 Ops/sec |
pre-cached lookup | 9104634.0 Ops/sec |
A benchmark result in the form of JSON!
After analyzing the data, I can see that there are four benchmarks:
Overall, it seems that pre-caching can significantly improve performance in these benchmarks!