Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Switch Case vs Object vs Array vs Map
(version: 4)
Comparing performance of:
Switch Case vs Object vs Map vs Array vs Switch Case Indirect Value
Created:
4 years ago
by:
Registered User
Jump to the latest result
Script Preparation code:
var obj = { 0: () => console.log('Heavy task'), 1: () => console.log('Heavy task'), 2: () => console.log('Heavy task'), 3: () => console.log('Heavy task'), 4: () => console.log('Heavy task'), 5: () => console.log('Heavy task'), 6: () => console.log('Heavy task'), 7: () => console.log('Heavy task'), 8: () => console.log('Heavy task'), 9: () => console.log('Heavy task'), 10: () => console.log('Heavy task'), 11: () => console.log('Heavy task'), 12: () => console.log('Heavy task'), 13: () => console.log('Heavy task'), 14: () => console.log('Heavy task'), 15: () => console.log('Heavy task'), 16: () => console.log('Heavy task'), 17: () => console.log('Heavy task'), 18: () => console.log('Heavy task'), 19: () => console.log('Heavy task'), 20: () => console.log('Heavy task'), 21: () => console.log('Heavy task'), 22: () => console.log('Heavy task'), 23: () => console.log('Heavy task'), 24: () => console.log('Heavy task'), 25: () => console.log('Heavy task'), 26: () => console.log('Heavy task'), 27: () => console.log('Heavy task'), 28: () => console.log('Heavy task'), 29: () => console.log('Heavy task'), 30: () => console.log('Heavy task'), 31: () => console.log('Heavy task'), 32: () => console.log('Heavy task'), 33: () => console.log('Heavy task'), 34: () => console.log('Heavy task'), 35: () => console.log('Heavy task'), 36: () => console.log('Heavy task'), 37: () => console.log('Heavy task'), 38: () => console.log('Heavy task'), 39: () => console.log('Heavy task'), 40: () => console.log('Heavy task'), 41: () => console.log('Heavy task'), 42: () => console.log('Heavy task'), 43: () => console.log('Heavy task'), 44: () => console.log('Heavy task'), 45: () => console.log('Heavy task'), 46: () => console.log('Heavy task'), 47: () => console.log('Heavy task'), 48: () => console.log('Heavy task'), 49: () => console.log('Heavy task'), 50: () => console.log('Heavy task'), 51: () => console.log('Heavy task'), 52: () => console.log('Heavy task'), 53: () => console.log('Heavy task'), 54: () => console.log('Heavy task'), 55: () => console.log('Heavy task'), 56: () => console.log('Heavy task'), 57: () => console.log('Heavy task'), 58: () => console.log('Heavy task'), 59: () => console.log('Heavy task'), 60: () => console.log('Heavy task'), 61: () => console.log('Heavy task'), 62: () => console.log('Heavy task'), 63: () => console.log('Heavy task'), 64: () => console.log('Heavy task'), 65: () => console.log('Heavy task'), 66: () => console.log('Heavy task'), 67: () => console.log('Heavy task'), 68: () => console.log('Heavy task'), 69: () => console.log('Heavy task'), 70: () => console.log('Heavy task'), 71: () => console.log('Heavy task'), 72: () => console.log('Heavy task'), 73: () => console.log('Heavy task'), 74: () => console.log('Heavy task'), 75: () => console.log('Heavy task'), 76: () => console.log('Heavy task'), 77: () => console.log('Heavy task'), 78: () => console.log('Heavy task'), 79: () => console.log('Heavy task'), 80: () => console.log('Heavy task'), 81: () => console.log('Heavy task'), 82: () => console.log('Heavy task'), 83: () => console.log('Heavy task'), 84: () => console.log('Heavy task'), 85: () => console.log('Heavy task'), 86: () => console.log('Heavy task'), 87: () => console.log('Heavy task'), 88: () => console.log('Heavy task'), 89: () => console.log('Heavy task'), 90: () => console.log('Heavy task'), 91: () => console.log('Heavy task'), 92: () => console.log('Heavy task'), 93: () => console.log('Heavy task'), 94: () => console.log('Heavy task'), 95: () => console.log('Heavy task'), 96: () => console.log('Heavy task'), 97: () => console.log('Heavy task'), 98: () => console.log('Heavy task'), 99: () => console.log('Heavy task'), 100: () => console.log('Heavy task'), }; var map = new Map([ [0, () => console.log('Heavy task')], [1, () => console.log('Heavy task')], [2, () => console.log('Heavy task')], [3, () => console.log('Heavy task')], [4, () => console.log('Heavy task')], [5, () => console.log('Heavy task')], [6, () => console.log('Heavy task')], [7, () => console.log('Heavy task')], [8, () => console.log('Heavy task')], [9, () => console.log('Heavy task')], [10, () => console.log('Heavy task')], [11, () => console.log('Heavy task')], [12, () => console.log('Heavy task')], [13, () => console.log('Heavy task')], [14, () => console.log('Heavy task')], [15, () => console.log('Heavy task')], [16, () => console.log('Heavy task')], [17, () => console.log('Heavy task')], [18, () => console.log('Heavy task')], [19, () => console.log('Heavy task')], [20, () => console.log('Heavy task')], [21, () => console.log('Heavy task')], [22, () => console.log('Heavy task')], [23, () => console.log('Heavy task')], [24, () => console.log('Heavy task')], [25, () => console.log('Heavy task')], [26, () => console.log('Heavy task')], [27, () => console.log('Heavy task')], [28, () => console.log('Heavy task')], [29, () => console.log('Heavy task')], [30, () => console.log('Heavy task')], [31, () => console.log('Heavy task')], [32, () => console.log('Heavy task')], [33, () => console.log('Heavy task')], [34, () => console.log('Heavy task')], [35, () => console.log('Heavy task')], [36, () => console.log('Heavy task')], [37, () => console.log('Heavy task')], [38, () => console.log('Heavy task')], [39, () => console.log('Heavy task')], [40, () => console.log('Heavy task')], [41, () => console.log('Heavy task')], [42, () => console.log('Heavy task')], [43, () => console.log('Heavy task')], [44, () => console.log('Heavy task')], [45, () => console.log('Heavy task')], [46, () => console.log('Heavy task')], [47, () => console.log('Heavy task')], [48, () => console.log('Heavy task')], [49, () => console.log('Heavy task')], [50, () => console.log('Heavy task')], [51, () => console.log('Heavy task')], [52, () => console.log('Heavy task')], [53, () => console.log('Heavy task')], [54, () => console.log('Heavy task')], [55, () => console.log('Heavy task')], [56, () => console.log('Heavy task')], [57, () => console.log('Heavy task')], [58, () => console.log('Heavy task')], [59, () => console.log('Heavy task')], [60, () => console.log('Heavy task')], [61, () => console.log('Heavy task')], [62, () => console.log('Heavy task')], [63, () => console.log('Heavy task')], [64, () => console.log('Heavy task')], [65, () => console.log('Heavy task')], [66, () => console.log('Heavy task')], [67, () => console.log('Heavy task')], [68, () => console.log('Heavy task')], [69, () => console.log('Heavy task')], [70, () => console.log('Heavy task')], [71, () => console.log('Heavy task')], [72, () => console.log('Heavy task')], [73, () => console.log('Heavy task')], [74, () => console.log('Heavy task')], [75, () => console.log('Heavy task')], [76, () => console.log('Heavy task')], [77, () => console.log('Heavy task')], [78, () => console.log('Heavy task')], [79, () => console.log('Heavy task')], [80, () => console.log('Heavy task')], [81, () => console.log('Heavy task')], [82, () => console.log('Heavy task')], [83, () => console.log('Heavy task')], [84, () => console.log('Heavy task')], [85, () => console.log('Heavy task')], [86, () => console.log('Heavy task')], [87, () => console.log('Heavy task')], [88, () => console.log('Heavy task')], [89, () => console.log('Heavy task')], [90, () => console.log('Heavy task')], [91, () => console.log('Heavy task')], [92, () => console.log('Heavy task')], [93, () => console.log('Heavy task')], [94, () => console.log('Heavy task')], [95, () => console.log('Heavy task')], [96, () => console.log('Heavy task')], [97, () => console.log('Heavy task')], [98, () => console.log('Heavy task')], [99, () => console.log('Heavy task')], [100, () => console.log('Heavy task')], ]); var arr = []; for (var i = 0; i < 101; i++) { arr.push(() => console.log('Heavy task')); } var collection = { V0: 0, V1: 1, V2: 2, V3: 3, V4: 4, V5: 5, V6: 6, V7: 7, V8: 8, V9: 9, V10: 10, V11: 11, V12: 12, V13: 13, V14: 14, V15: 15, V16: 16, V17: 17, V18: 18, V19: 19, V20: 20, V21: 21, V22: 22, V23: 23, V24: 24, V25: 25, V26: 26, V27: 27, V28: 28, V29: 29, V30: 30, V31: 31, V32: 32, V33: 33, V34: 34, V35: 35, V36: 36, V37: 37, V38: 38, V39: 39, V40: 40, V41: 41, V42: 42, V43: 43, V44: 44, V45: 45, V46: 46, V47: 47, V48: 48, V49: 49, V50: 50, V51: 51, V52: 52, V53: 53, V54: 54, V55: 55, V56: 56, V57: 57, V58: 58, V59: 59, V60: 60, V61: 61, V62: 62, V63: 63, V64: 64, V65: 65, V66: 66, V67: 67, V68: 68, V69: 69, V70: 70, V71: 71, V72: 72, V73: 73, V74: 74, V75: 75, V76: 76, V77: 77, V78: 78, V79: 79, V80: 80, V81: 81, V82: 82, V83: 83, V84: 84, V85: 85, V86: 86, V87: 87, V88: 88, V89: 89, V90: 90, V91: 91, V92: 92, V93: 93, V94: 94, V95: 95, V96: 96, V97: 97, V98: 98, V99: 99, V100: 100, };
Tests:
Switch Case
var value = Math.floor(Math.random() * 100); switch (value) { case 0: console.log('Heavy task'); break; case 1: console.log('Heavy task'); break; case 2: console.log('Heavy task'); break; case 3: console.log('Heavy task'); break; case 4: console.log('Heavy task'); break; case 5: console.log('Heavy task'); break; case 6: console.log('Heavy task'); break; case 7: console.log('Heavy task'); break; case 8: console.log('Heavy task'); break; case 9: console.log('Heavy task'); break; case 10: console.log('Heavy task'); break; case 11: console.log('Heavy task'); break; case 12: console.log('Heavy task'); break; case 13: console.log('Heavy task'); break; case 14: console.log('Heavy task'); break; case 15: console.log('Heavy task'); break; case 16: console.log('Heavy task'); break; case 17: console.log('Heavy task'); break; case 18: console.log('Heavy task'); break; case 19: console.log('Heavy task'); break; case 20: console.log('Heavy task'); break; case 21: console.log('Heavy task'); break; case 22: console.log('Heavy task'); break; case 23: console.log('Heavy task'); break; case 24: console.log('Heavy task'); break; case 25: console.log('Heavy task'); break; case 26: console.log('Heavy task'); break; case 27: console.log('Heavy task'); break; case 28: console.log('Heavy task'); break; case 29: console.log('Heavy task'); break; case 30: console.log('Heavy task'); break; case 31: console.log('Heavy task'); break; case 32: console.log('Heavy task'); break; case 33: console.log('Heavy task'); break; case 34: console.log('Heavy task'); break; case 35: console.log('Heavy task'); break; case 36: console.log('Heavy task'); break; case 37: console.log('Heavy task'); break; case 38: console.log('Heavy task'); break; case 39: console.log('Heavy task'); break; case 40: console.log('Heavy task'); break; case 41: console.log('Heavy task'); break; case 42: console.log('Heavy task'); break; case 43: console.log('Heavy task'); break; case 44: console.log('Heavy task'); break; case 45: console.log('Heavy task'); break; case 46: console.log('Heavy task'); break; case 47: console.log('Heavy task'); break; case 48: console.log('Heavy task'); break; case 49: console.log('Heavy task'); break; case 50: console.log('Heavy task'); break; case 51: console.log('Heavy task'); break; case 52: console.log('Heavy task'); break; case 53: console.log('Heavy task'); break; case 54: console.log('Heavy task'); break; case 55: console.log('Heavy task'); break; case 56: console.log('Heavy task'); break; case 57: console.log('Heavy task'); break; case 58: console.log('Heavy task'); break; case 59: console.log('Heavy task'); break; case 60: console.log('Heavy task'); break; case 61: console.log('Heavy task'); break; case 62: console.log('Heavy task'); break; case 63: console.log('Heavy task'); break; case 64: console.log('Heavy task'); break; case 65: console.log('Heavy task'); break; case 66: console.log('Heavy task'); break; case 67: console.log('Heavy task'); break; case 68: console.log('Heavy task'); break; case 69: console.log('Heavy task'); break; case 70: console.log('Heavy task'); break; case 71: console.log('Heavy task'); break; case 72: console.log('Heavy task'); break; case 73: console.log('Heavy task'); break; case 74: console.log('Heavy task'); break; case 75: console.log('Heavy task'); break; case 76: console.log('Heavy task'); break; case 77: console.log('Heavy task'); break; case 78: console.log('Heavy task'); break; case 79: console.log('Heavy task'); break; case 80: console.log('Heavy task'); break; case 81: console.log('Heavy task'); break; case 82: console.log('Heavy task'); break; case 83: console.log('Heavy task'); break; case 84: console.log('Heavy task'); break; case 85: console.log('Heavy task'); break; case 86: console.log('Heavy task'); break; case 87: console.log('Heavy task'); break; case 88: console.log('Heavy task'); break; case 89: console.log('Heavy task'); break; case 90: console.log('Heavy task'); break; case 91: console.log('Heavy task'); break; case 92: console.log('Heavy task'); break; case 93: console.log('Heavy task'); break; case 94: console.log('Heavy task'); break; case 95: console.log('Heavy task'); break; case 96: console.log('Heavy task'); break; case 97: console.log('Heavy task'); break; case 98: console.log('Heavy task'); break; case 99: console.log('Heavy task'); break; case 100: console.log('Heavy task'); break; }
Object
var value = Math.floor(Math.random() * 100); obj[value]();
Map
var value = Math.floor(Math.random() * 100); map.get(value)();
Array
var value = Math.floor(Math.random() * 100); arr[value]();
Switch Case Indirect Value
var value = Math.floor(Math.random() * 100); switch (value) { case collection.V0: console.log('Heavy task'); break; case collection.V1: console.log('Heavy task'); break; case collection.V2: console.log('Heavy task'); break; case collection.V3: console.log('Heavy task'); break; case collection.V4: console.log('Heavy task'); break; case collection.V5: console.log('Heavy task'); break; case collection.V6: console.log('Heavy task'); break; case collection.V7: console.log('Heavy task'); break; case collection.V8: console.log('Heavy task'); break; case collection.V9: console.log('Heavy task'); break; case collection.V10: console.log('Heavy task'); break; case collection.V11: console.log('Heavy task'); break; case collection.V12: console.log('Heavy task'); break; case collection.V13: console.log('Heavy task'); break; case collection.V14: console.log('Heavy task'); break; case collection.V15: console.log('Heavy task'); break; case collection.V16: console.log('Heavy task'); break; case collection.V17: console.log('Heavy task'); break; case collection.V18: console.log('Heavy task'); break; case collection.V19: console.log('Heavy task'); break; case collection.V20: console.log('Heavy task'); break; case collection.V21: console.log('Heavy task'); break; case collection.V22: console.log('Heavy task'); break; case collection.V23: console.log('Heavy task'); break; case collection.V24: console.log('Heavy task'); break; case collection.V25: console.log('Heavy task'); break; case collection.V26: console.log('Heavy task'); break; case collection.V27: console.log('Heavy task'); break; case collection.V28: console.log('Heavy task'); break; case collection.V29: console.log('Heavy task'); break; case collection.V30: console.log('Heavy task'); break; case collection.V31: console.log('Heavy task'); break; case collection.V32: console.log('Heavy task'); break; case collection.V33: console.log('Heavy task'); break; case collection.V34: console.log('Heavy task'); break; case collection.V35: console.log('Heavy task'); break; case collection.V36: console.log('Heavy task'); break; case collection.V37: console.log('Heavy task'); break; case collection.V38: console.log('Heavy task'); break; case collection.V39: console.log('Heavy task'); break; case collection.V40: console.log('Heavy task'); break; case collection.V41: console.log('Heavy task'); break; case collection.V42: console.log('Heavy task'); break; case collection.V43: console.log('Heavy task'); break; case collection.V44: console.log('Heavy task'); break; case collection.V45: console.log('Heavy task'); break; case collection.V46: console.log('Heavy task'); break; case collection.V47: console.log('Heavy task'); break; case collection.V48: console.log('Heavy task'); break; case collection.V49: console.log('Heavy task'); break; case collection.V50: console.log('Heavy task'); break; case collection.V51: console.log('Heavy task'); break; case collection.V52: console.log('Heavy task'); break; case collection.V53: console.log('Heavy task'); break; case collection.V54: console.log('Heavy task'); break; case collection.V55: console.log('Heavy task'); break; case collection.V56: console.log('Heavy task'); break; case collection.V57: console.log('Heavy task'); break; case collection.V58: console.log('Heavy task'); break; case collection.V59: console.log('Heavy task'); break; case collection.V60: console.log('Heavy task'); break; case collection.V61: console.log('Heavy task'); break; case collection.V62: console.log('Heavy task'); break; case collection.V63: console.log('Heavy task'); break; case collection.V64: console.log('Heavy task'); break; case collection.V65: console.log('Heavy task'); break; case collection.V66: console.log('Heavy task'); break; case collection.V67: console.log('Heavy task'); break; case collection.V68: console.log('Heavy task'); break; case collection.V69: console.log('Heavy task'); break; case collection.V70: console.log('Heavy task'); break; case collection.V71: console.log('Heavy task'); break; case collection.V72: console.log('Heavy task'); break; case collection.V73: console.log('Heavy task'); break; case collection.V74: console.log('Heavy task'); break; case collection.V75: console.log('Heavy task'); break; case collection.V76: console.log('Heavy task'); break; case collection.V77: console.log('Heavy task'); break; case collection.V78: console.log('Heavy task'); break; case collection.V79: console.log('Heavy task'); break; case collection.V80: console.log('Heavy task'); break; case collection.V81: console.log('Heavy task'); break; case collection.V82: console.log('Heavy task'); break; case collection.V83: console.log('Heavy task'); break; case collection.V84: console.log('Heavy task'); break; case collection.V85: console.log('Heavy task'); break; case collection.V86: console.log('Heavy task'); break; case collection.V87: console.log('Heavy task'); break; case collection.V88: console.log('Heavy task'); break; case collection.V89: console.log('Heavy task'); break; case collection.V90: console.log('Heavy task'); break; case collection.V91: console.log('Heavy task'); break; case collection.V92: console.log('Heavy task'); break; case collection.V93: console.log('Heavy task'); break; case collection.V94: console.log('Heavy task'); break; case collection.V95: console.log('Heavy task'); break; case collection.V96: console.log('Heavy task'); break; case collection.V97: console.log('Heavy task'); break; case collection.V98: console.log('Heavy task'); break; case collection.V99: console.log('Heavy task'); break; case collection.V100: console.log('Heavy task'); break; }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (5)
Previous results
Fork
Test case name
Result
Switch Case
Object
Map
Array
Switch Case Indirect Value
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Based on the provided benchmark results, it appears that the "Switch Case Indirect Value" test is experiencing significant performance degradation. The top result shows an execution rate of 84245.8125 executions per second, which is more than 40 times slower than the next highest result. To improve the performance of this test, I would recommend the following: 1. **Simplify the switch case statement**: Instead of having a long series of `case` statements with identical code, consider extracting the common code into a separate function or method. 2. **Use a more efficient data structure**: If possible, consider using an array or other data structure that allows for faster lookups and comparisons. 3. **Avoid unnecessary computations**: Review the test code to ensure that no unnecessary computations are being performed that could be optimized away. 4. **Consider parallelization**: Depending on the specific requirements of the test, it may be possible to parallelize certain aspects of the execution to improve overall performance. By addressing these potential optimization opportunities, it may be possible to significantly improve the performance of the "Switch Case Indirect Value" test.
Related benchmarks:
Object vs Switch..Case vs Map
Switch vs Object Literal - no console.log
object map vs switch 「!!!!」
hashmap vs switch trivial case
Comments
Confirm delete:
Do you really want to delete benchmark?