Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Compare switch vs dictionary complex
(version: 0)
Comparing performance of:
switch vs dictionary
Created:
3 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var random = Math.floor(Math.random() * 99); var result = ""; var test = { "0": "something else", "1": "something else", "2": "something else", "3": "something else", "4": "something else", "5": "something else", "6": "something else", "7": "something else", "8": "something else", "9": "something else", "10": "something else", "11": "something else", "12": "something else", "13": "something else", "14": "something else", "15": "something else", "16": "something else", "17": "something else", "18": "something else", "19": "something else", "20": "something else", "21": "something else", "22": "something else", "23": "something else", "24": "something else", "25": "something else", "26": "something else", "27": "something else", "28": "something else", "29": "something else", "30": "something else", "31": "something else", "32": "something else", "33": "something else", "34": "something else", "35": "something else", "36": "something else", "37": "something else", "38": "something else", "39": "something else", "40": "something else", "41": "something else", "42": "something else", "43": "something else", "44": "something else", "45": "something else", "46": "something else", "47": "something else", "48": "something else", "49": "something else", "50": "something else", "51": "something else", "52": "something else", "53": "something else", "54": "something else", "55": "something else", "56": "something else", "57": "something else", "58": "something else", "59": "something else", "60": "something else", "61": "something else", "62": "something else", "63": "something else", "64": "something else", "65": "something else", "66": "something else", "67": "something else", "68": "something else", "69": "something else", "70": "something else", "71": "something else", "72": "something else", "73": "something else", "74": "something else", "75": "something else", "76": "something else", "77": "something else", "78": "something else", "79": "something else", "80": "something else", "81": "something else", "82": "something else", "83": "something else", "84": "something else", "85": "something else", "86": "something else", "87": "something else", "88": "something else", "89": "something else", "90": "something else", "91": "something else", "92": "something else", "93": "something else", "94": "something else", "95": "something else", "96": "something else", "97": "something else", "98": "something else", "99": "something else", }; function getValue(random) { switch (random) { case "0": return "something else"; case "1": return "something else"; case "2": return "something else"; case "3": return "something else"; case "4": return "something else"; case "5": return "something else"; case "6": return "something else"; case "7": return "something else"; case "8": return "something else"; case "9": return "something else"; case "10": return "something else"; case "11": return "something else"; case "12": return "something else"; case "13": return "something else"; case "14": return "something else"; case "15": return "something else"; case "16": return "something else"; case "17": return "something else"; case "18": return "something else"; case "19": return "something else"; case "20": return "something else"; case "21": return "something else"; case "22": return "something else"; case "23": return "something else"; case "24": return "something else"; case "25": return "something else"; case "26": return "something else"; case "27": return "something else"; case "28": return "something else"; case "29": return "something else"; case "30": return "something else"; case "31": return "something else"; case "32": return "something else"; case "33": return "something else"; case "34": return "something else"; case "35": return "something else"; case "36": return "something else"; case "37": return "something else"; case "38": return "something else"; case "39": return "something else"; case "40": return "something else"; case "41": return "something else"; case "42": return "something else"; case "43": return "something else"; case "44": return "something else"; case "45": return "something else"; case "46": return "something else"; case "47": return "something else"; case "48": return "something else"; case "49": return "something else"; case "50": return "something else"; case "51": return "something else"; case "52": return "something else"; case "53": return "something else"; case "54": return "something else"; case "55": return "something else"; case "56": return "something else"; case "57": return "something else"; case "58": return "something else"; case "59": return "something else"; case "60": return "something else"; case "61": return "something else"; case "62": return "something else"; case "63": return "something else"; case "64": return "something else"; case "65": return "something else"; case "66": return "something else"; case "67": return "something else"; case "68": return "something else"; case "69": return "something else"; case "70": return "something else"; case "71": return "something else"; case "72": return "something else"; case "73": return "something else"; case "74": return "something else"; case "75": return "something else"; case "76": return "something else"; case "77": return "something else"; case "78": return "something else"; case "79": return "something else"; case "80": return "something else"; case "81": return "something else"; case "82": return "something else"; case "83": return "something else"; case "84": return "something else"; case "85": return "something else"; case "86": return "something else"; case "87": return "something else"; case "88": return "something else"; case "89": return "something else"; case "90": return "something else"; case "91": return "something else"; case "92": return "something else"; case "93": return "something else"; case "94": return "something else"; case "95": return "something else"; case "96": return "something else"; case "97": return "something else"; case "98": return "something else"; case "99": return "something else"; default: return "something else"; } };
Tests:
switch
getValue(random);
dictionary
test[random];
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
switch
dictionary
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
2 years ago
)
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Browser/OS:
Chrome 120 on Windows
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
switch
1199590.4 Ops/sec
dictionary
3681751.0 Ops/sec
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
It seems like you're describing a benchmarking scenario. Based on the provided information, I'll attempt to extract some insights: 1. **Benchmarking Code**: The code appears to be in C# and utilizes a switch statement with 100 cases (0-99) to return a string value "something else". Additionally, there's a dictionary lookup for the key "test" with a random value. 2. **Test Cases**: - `switch`: This test case measures the performance of a simple switch statement. - `dictionary`: This test case measures the performance of a dictionary (or hash table) lookup. 3. **Benchmark Results**: The provided benchmark results show the number of executions per second for each test case across different devices and browsers: - `dictionary` shows better performance with 3681751.0 executions per second. - `switch` has significantly slower performance with 1199590.375 executions per second. 4. **Device Variability**: The results indicate that device variability plays a role in the benchmarking outcomes, as the performance difference between `dictionary` and `switch` is quite substantial across different devices (desktops) running Chrome 120. 5. **No Obvious Optimizations or Differences**: There's no apparent optimization applied to either code segment, nor are there any notable differences that could explain why one outperforms the other. This might suggest that the performance difference is inherent to the operations performed by each code segment or related to the underlying data structures used. 6. **Potential Areas for Improvement**: - Optimizing Dictionary Lookups: In C#, dictionary lookups are generally quite fast. However, there may be edge cases where additional work is done during the lookup process (e.g., hashing), which could influence performance. - Switch Statement Optimization: While simple switch statements can be optimized, complex ones or those with many branches might be less efficient than expected due to branching and potential cache misses. 7. **Conclusion**: Given the available information, it's challenging to pinpoint a single area for optimization without additional context or details about the specific requirements, constraints, and performance goals of the project. The code segments provided already appear to be well-structured based on standard C# practices, suggesting that any further optimization might not yield significant performance improvements without potentially introducing complexity or trade-offs.
Related benchmarks:
switch vs if-else vs lookup
Switch vs. dictionary
Compare switch vs dictionary
Compare switch vs dictionary complex 1000
Comments
Confirm delete:
Do you really want to delete benchmark?