An open API service indexing awesome lists of open source software.

https://github.com/jacraig/i-got-bored

Just a bunch of benchmarks that I've developed over time when I had a free moment and was bored with other side projects.
https://github.com/jacraig/i-got-bored

speed-test

Last synced: 9 months ago
JSON representation

Just a bunch of benchmarks that I've developed over time when I had a free moment and was bored with other side projects.

Awesome Lists containing this project

README

          

This is the repository for testing various speed improvements for Structure.Sketching and other libs. The results can be found below the conclussions section.

# Conclussions

1. When dealing with arrays of data inside of a method, use ArrayPool to allocate.

2. Array.Copy is generally better for smaller arrays. Larger arrays (100,000+), Buffer.MemoryCopy seems to be a better option.

3. For arrays, just treat them as arrays when iterating over them. IEnumerable, etc. slow them down.

4. For arrays, foreach and for have no difference at this point in time.

5. If you can, use Array.Sort and List.Sort. They're much faster than the alternatives.

6. The various old optimizations like bitwise math are no longer effective.

7. Unchecked math no longer seems to be substantially faster.

8. Structs are much faster to create than classes. Setting or getting values is about the same though.

9. For ConcurrentDictionary, use TryGetValue over an index or key lookup.

10. For Dictionary, the type of the key matters. Long, uint, ulong, etc. are much faster than string.

11. Dictionary is much faster than ConcurrentDictionary. Only use ConcurrentDictionary when you need to.

12. Dynamic vs static typing, static is about 10x faster.

13. Byte packing is faster than using an enum but it's about 4ns vs 2ns...

14. Fields are slightly faster than properties in certain circumstances.

15. Dictionary is generally faster than Hashtable if using an int as the key. Hashtable seems slightly faster when dealing with string as the key.

16. Array.Copy and List.CopyTo are much faster at copying data over than other options.

17. Arrays are much faster than alternatives for iteration.

18. ++x or x++ makes no difference.

19. Use 'is' instead of any of the clever other options if you can for determining the type of an object.

20. If you can, use List.AddRange instead of List.Add.

21. Using a for loop with Lists is the fastest approach.

22. If you need something that looks like a Dictionary, then just use a Dictionary...

23. If you're going to create a list of items, use AddRange instead of feeding them into the constructor.

24. For small items, MemoryStream is better than RecyclableMemoryStream. For larger items, RecyclableMemoryStream is much better though.

25. In terms of what is better (best to worst): Direct Method Call > Func(=>) > Func(Method) > Cached MethodInfo > new Func(=>) > new Func(Method).

26. For null equality, use either is or ReferenceEquals.

27. If you need to create an object, just use new. If you can't use new, compile/cache a lambda expression.

28. Use partitioning when doing Parallel.ForEach if you need to worry about speed but note there will be a slight memory increase.

29. If you're reading in a whole file, create the whole file in one go. This does not apply for instances where you are streaming the file or modifying portions of it.

30. When you can, cache type info as it's not free.

31. When you can, use a simple Contains instead of using Regex.

32. using pointers into an array is slightly faster than a Span.

33. stackalloc seems to be a speed boost at larger number of items.

34. Do not use a statuc constructor if you don't need to. It gets called every time you call a method on the class.

35. Use a StringBuilder instead of string concat. Memory and speed improvements for anything 100+ concatenations.

36. If you're formatting a string, string concat is usually faster than things like string interpolation.

37. If you can use a StringBuilderPool. Faster and memory improvements to be had.

38. If you are going to replace a value in a string, use string.Replace instead of StringBuilder.Replace.

39. String.Substring works slightly better than Span.Slice.

40. Using string.Substring works better than Trim for small strings. Larger strings, Trim works better.

41. Vector works better than dealing with straight struct, byte array, etc. in terms of speed. Memory increases though.

# Results

``` ini

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19042.1165 (20H2/October2020Update)
Intel Core i7-9850H CPU 2.60GHz, 1 CPU, 12 logical and 6 physical cores
.NET SDK=5.0.303
[Host] : .NET 5.0.9 (5.0.921.35908), X64 RyuJIT
DefaultJob : .NET 5.0.9 (5.0.921.35908), X64 RyuJIT

```
**Allocation Strategy Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------------------------------- |------- |--------------:|--------------:|--------------:|-------------:|--------------:|--------------:|--------------:|--------------:|--------------:|-------------:|------:|--------:|-----:|---------:|---------:|---------:|----------:|
| **'Allocate as needed'** | **100** | **56.12 ns** | **1.134 ns** | **1.662 ns** | **0.309 ns** | **55.71 ns** | **53.39 ns** | **54.98 ns** | **57.10 ns** | **60.07 ns** | **17,817,409.3** | **1.00** | **0.00** | **2** | **0.0675** | **-** | **-** | **424 B** |
| ArrayPool | 100 | 52.99 ns | 1.049 ns | 0.981 ns | 0.253 ns | 53.08 ns | 51.72 ns | 52.13 ns | 53.51 ns | 55.33 ns | 18,870,851.6 | 0.93 | 0.03 | 1 | - | - | - | - |
| 'Item from pointer to preallocated array 'pool'' | 100 | 102.99 ns | 1.567 ns | 1.389 ns | 0.371 ns | 103.37 ns | 101.09 ns | 101.57 ns | 103.84 ns | 105.31 ns | 9,709,521.8 | 1.80 | 0.05 | 4 | - | - | - | - |
| 'Span from preallocated array 'pool'' | 100 | 99.15 ns | 1.173 ns | 1.040 ns | 0.278 ns | 98.87 ns | 97.79 ns | 98.55 ns | 99.43 ns | 101.05 ns | 10,085,768.4 | 1.73 | 0.04 | 3 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Allocate as needed'** | **1000** | **534.01 ns** | **52.968 ns** | **154.511 ns** | **15.608 ns** | **482.06 ns** | **377.06 ns** | **402.84 ns** | **642.89 ns** | **939.27 ns** | **1,872,612.8** | **1.00** | **0.00** | **2** | **0.6413** | **-** | **-** | **4,024 B** |
| ArrayPool | 1000 | 285.37 ns | 4.622 ns | 8.682 ns | 1.309 ns | 283.82 ns | 276.96 ns | 279.07 ns | 286.53 ns | 317.50 ns | 3,504,181.7 | 0.61 | 0.13 | 1 | - | - | - | - |
| 'Item from pointer to preallocated array 'pool'' | 1000 | 1,006.20 ns | 7.074 ns | 6.271 ns | 1.676 ns | 1,005.33 ns | 996.64 ns | 1,003.08 ns | 1,009.33 ns | 1,018.39 ns | 993,841.9 | 1.67 | 0.26 | 3 | - | - | - | - |
| 'Span from preallocated array 'pool'' | 1000 | 1,004.87 ns | 16.886 ns | 15.795 ns | 4.078 ns | 1,000.94 ns | 985.84 ns | 993.87 ns | 1,015.74 ns | 1,030.93 ns | 995,155.5 | 1.65 | 0.26 | 3 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Allocate as needed'** | **10000** | **3,618.63 ns** | **66.337 ns** | **110.834 ns** | **18.472 ns** | **3,594.44 ns** | **3,435.67 ns** | **3,551.89 ns** | **3,701.35 ns** | **3,909.66 ns** | **276,347.4** | **1.00** | **0.00** | **2** | **6.3248** | **-** | **-** | **40,024 B** |
| ArrayPool | 10000 | 2,471.36 ns | 22.579 ns | 21.120 ns | 5.453 ns | 2,468.43 ns | 2,447.23 ns | 2,451.19 ns | 2,478.83 ns | 2,514.19 ns | 404,635.3 | 0.67 | 0.02 | 1 | - | - | - | - |
| 'Item from pointer to preallocated array 'pool'' | 10000 | 10,991.06 ns | 214.129 ns | 552.736 ns | 62.585 ns | 10,775.12 ns | 10,436.06 ns | 10,663.93 ns | 10,981.38 ns | 12,812.01 ns | 90,983.1 | 3.13 | 0.16 | 3 | - | - | - | - |
| 'Span from preallocated array 'pool'' | 10000 | 10,824.17 ns | 199.923 ns | 187.008 ns | 48.285 ns | 10,855.97 ns | 10,534.45 ns | 10,704.88 ns | 10,940.28 ns | 11,215.16 ns | 92,385.8 | 2.92 | 0.09 | 3 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Allocate as needed'** | **100000** | **44,122.70 ns** | **1,758.718 ns** | **5,185.619 ns** | **518.562 ns** | **41,278.75 ns** | **39,662.34 ns** | **40,671.17 ns** | **47,442.11 ns** | **57,506.78 ns** | **22,664.1** | **1.00** | **0.00** | **2** | **124.9390** | **124.9390** | **124.9390** | **400,024 B** |
| ArrayPool | 100000 | 36,445.91 ns | 3,452.459 ns | 10,179.654 ns | 1,017.965 ns | 33,107.53 ns | 25,222.46 ns | 28,612.70 ns | 45,130.26 ns | 69,482.34 ns | 27,437.9 | 0.84 | 0.25 | 1 | - | - | - | 16 B |
| 'Item from pointer to preallocated array 'pool'' | 100000 | 162,389.81 ns | 12,894.135 ns | 37,408.224 ns | 3,798.230 ns | 147,649.68 ns | 116,530.59 ns | 132,376.15 ns | 192,439.43 ns | 275,619.95 ns | 6,158.0 | 3.65 | 0.59 | 3 | - | - | - | - |
| 'Span from preallocated array 'pool'' | 100000 | 202,003.98 ns | 11,628.267 ns | 34,286.209 ns | 3,428.621 ns | 204,942.19 ns | 136,907.60 ns | 188,273.36 ns | 225,580.81 ns | 273,378.09 ns | 4,950.4 | 4.62 | 0.87 | 4 | - | - | - | - |

----------
**Array Copy Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|---------------------------------- |------- |-------------:|-----------:|-----------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|--------------:|------:|--------:|-----:|----------:|
| **'Copy using Array.Copy()'** | **100** | **4.759 ns** | **0.2609 ns** | **0.7315 ns** | **0.0767 ns** | **4.394 ns** | **4.228 ns** | **4.324 ns** | **4.774 ns** | **6.613 ns** | **210,129,894.8** | **1.00** | **0.00** | **1** | **-** |
| 'Copy using Buffer.MemoryCopy<T>' | 100 | 5.064 ns | 0.0569 ns | 0.0504 ns | 0.0135 ns | 5.065 ns | 4.994 ns | 5.021 ns | 5.103 ns | 5.143 ns | 197,488,456.1 | 0.80 | 0.04 | 2 | - |
| | | | | | | | | | | | | | | | |
| **'Copy using Array.Copy()'** | **1000** | **24.799 ns** | **1.4591 ns** | **4.3023 ns** | **0.4302 ns** | **23.771 ns** | **20.163 ns** | **20.548 ns** | **28.693 ns** | **37.130 ns** | **40,324,638.9** | **1.00** | **0.00** | **1** | **-** |
| 'Copy using Buffer.MemoryCopy<T>' | 1000 | 28.366 ns | 0.2915 ns | 0.2727 ns | 0.0704 ns | 28.387 ns | 27.777 ns | 28.198 ns | 28.568 ns | 28.790 ns | 35,253,247.0 | 1.06 | 0.23 | 2 | - |
| | | | | | | | | | | | | | | | |
| **'Copy using Array.Copy()'** | **10000** | **146.887 ns** | **0.7626 ns** | **0.7133 ns** | **0.1842 ns** | **146.974 ns** | **145.934 ns** | **146.208 ns** | **147.426 ns** | **148.033 ns** | **6,807,943.3** | **1.00** | **0.00** | **1** | **-** |
| 'Copy using Buffer.MemoryCopy<T>' | 10000 | 145.307 ns | 1.2286 ns | 1.0891 ns | 0.2911 ns | 145.052 ns | 143.987 ns | 144.487 ns | 145.735 ns | 147.334 ns | 6,881,989.7 | 0.99 | 0.01 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Copy using Array.Copy()'** | **100000** | **2,466.015 ns** | **48.6846 ns** | **43.1577 ns** | **11.5344 ns** | **2,462.106 ns** | **2,385.767 ns** | **2,440.302 ns** | **2,503.870 ns** | **2,534.995 ns** | **405,512.5** | **1.00** | **0.00** | **2** | **-** |
| 'Copy using Buffer.MemoryCopy<T>' | 100000 | 1,953.516 ns | 39.0490 ns | 82.3676 ns | 11.2088 ns | 1,924.865 ns | 1,856.736 ns | 1,898.436 ns | 1,984.247 ns | 2,168.823 ns | 511,897.6 | 0.83 | 0.04 | 1 | - |

----------
**Array Interface Iteration**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|--------------------------------- |------- |----------------:|---------------:|---------------:|--------------:|----------------:|----------------:|----------------:|----------------:|----------------:|-------------:|-------:|--------:|-----:|---------:|------------:|
| **'T[] ForEach'** | **100** | **33.14 ns** | **0.353 ns** | **0.330 ns** | **0.085 ns** | **33.09 ns** | **32.52 ns** | **32.93 ns** | **33.36 ns** | **33.74 ns** | **30,174,718.9** | **0.99** | **0.02** | **1** | **-** | **-** |
| 'T[] For' | 100 | 33.44 ns | 0.681 ns | 0.637 ns | 0.165 ns | 33.26 ns | 32.78 ns | 32.93 ns | 33.77 ns | 34.69 ns | 29,901,335.1 | 1.00 | 0.00 | 1 | - | - |
| 'ICollection ForEach' | 100 | 6,305.65 ns | 125.607 ns | 315.122 ns | 36.632 ns | 6,236.68 ns | 5,762.93 ns | 6,079.30 ns | 6,527.53 ns | 7,214.67 ns | 158,587.9 | 190.07 | 12.52 | 8 | 0.3815 | 2,432 B |
| 'ICollection<T> ForEach' | 100 | 403.83 ns | 7.136 ns | 7.931 ns | 1.820 ns | 401.21 ns | 394.14 ns | 399.84 ns | 406.20 ns | 420.56 ns | 2,476,293.8 | 12.13 | 0.39 | 4 | 0.0048 | 32 B |
| 'IEnumerable ForEach' | 100 | 4,715.60 ns | 40.706 ns | 38.077 ns | 9.831 ns | 4,706.11 ns | 4,663.34 ns | 4,687.45 ns | 4,741.61 ns | 4,783.22 ns | 212,062.1 | 141.04 | 2.37 | 6 | 0.3815 | 2,432 B |
| 'IEnumerable<T> ForEach' | 100 | 402.51 ns | 6.406 ns | 5.992 ns | 1.547 ns | 401.63 ns | 393.81 ns | 397.50 ns | 407.22 ns | 413.97 ns | 2,484,389.1 | 12.04 | 0.22 | 4 | 0.0048 | 32 B |
| 'IList ForEach' | 100 | 5,366.09 ns | 265.262 ns | 782.130 ns | 78.213 ns | 5,400.17 ns | 4,317.29 ns | 4,594.29 ns | 5,869.63 ns | 7,502.37 ns | 186,355.3 | 154.27 | 23.81 | 7 | 0.3815 | 2,432 B |
| 'IList<T> ForEach' | 100 | 384.35 ns | 4.120 ns | 3.854 ns | 0.995 ns | 384.89 ns | 379.21 ns | 381.11 ns | 386.67 ns | 393.07 ns | 2,601,765.2 | 11.50 | 0.24 | 4 | 0.0048 | 32 B |
| 'IList<T> For' | 100 | 224.63 ns | 2.039 ns | 1.907 ns | 0.492 ns | 224.10 ns | 222.21 ns | 223.18 ns | 225.81 ns | 229.10 ns | 4,451,844.7 | 6.72 | 0.11 | 2 | - | - |
| 'IList For' | 100 | 4,232.43 ns | 78.986 ns | 84.514 ns | 19.920 ns | 4,218.67 ns | 4,094.04 ns | 4,179.01 ns | 4,277.19 ns | 4,409.10 ns | 236,271.1 | 126.68 | 2.59 | 5 | 0.3815 | 2,400 B |
| 'IReadOnlyCollection<T> ForEach' | 100 | 390.49 ns | 6.611 ns | 6.184 ns | 1.597 ns | 393.31 ns | 380.75 ns | 385.73 ns | 394.70 ns | 400.34 ns | 2,560,874.6 | 11.68 | 0.23 | 4 | 0.0048 | 32 B |
| 'IReadOnlyList<T> ForEach' | 100 | 401.08 ns | 8.054 ns | 17.679 ns | 2.321 ns | 398.32 ns | 377.68 ns | 389.95 ns | 405.86 ns | 458.52 ns | 2,493,246.7 | 12.24 | 0.86 | 4 | 0.0048 | 32 B |
| 'IReadOnlyList<T> For' | 100 | 229.88 ns | 3.120 ns | 2.605 ns | 0.722 ns | 230.18 ns | 224.44 ns | 229.72 ns | 231.03 ns | 233.67 ns | 4,350,109.9 | 6.89 | 0.19 | 3 | - | - |
| | | | | | | | | | | | | | | | | |
| **'T[] ForEach'** | **1000** | **280.47 ns** | **8.572 ns** | **24.731 ns** | **2.524 ns** | **275.91 ns** | **248.41 ns** | **258.68 ns** | **299.31 ns** | **367.93 ns** | **3,565,396.1** | **1.08** | **0.08** | **2** | **-** | **-** |
| 'T[] For' | 1000 | 250.84 ns | 3.233 ns | 3.320 ns | 0.805 ns | 250.15 ns | 245.45 ns | 249.23 ns | 251.32 ns | 257.89 ns | 3,986,647.4 | 1.00 | 0.00 | 1 | - | - |
| 'ICollection ForEach' | 1000 | 50,343.64 ns | 1,967.893 ns | 5,802.377 ns | 580.238 ns | 46,996.89 ns | 44,401.92 ns | 45,482.51 ns | 55,667.83 ns | 63,158.38 ns | 19,863.5 | 206.95 | 26.56 | 7 | 3.7842 | 24,032 B |
| 'ICollection<T> ForEach' | 1000 | 3,700.79 ns | 65.625 ns | 61.385 ns | 15.850 ns | 3,674.13 ns | 3,627.54 ns | 3,657.52 ns | 3,749.90 ns | 3,835.51 ns | 270,212.9 | 14.76 | 0.20 | 4 | 0.0038 | 32 B |
| 'IEnumerable ForEach' | 1000 | 43,726.26 ns | 650.471 ns | 608.451 ns | 157.101 ns | 43,669.40 ns | 42,936.36 ns | 43,197.35 ns | 44,106.73 ns | 45,162.50 ns | 22,869.6 | 174.42 | 3.17 | 6 | 3.7842 | 24,032 B |
| 'IEnumerable<T> ForEach' | 1000 | 3,670.50 ns | 27.603 ns | 25.820 ns | 6.667 ns | 3,668.03 ns | 3,623.95 ns | 3,652.06 ns | 3,693.16 ns | 3,709.39 ns | 272,442.4 | 14.64 | 0.19 | 4 | 0.0038 | 32 B |
| 'IList ForEach' | 1000 | 44,380.90 ns | 825.923 ns | 772.569 ns | 199.477 ns | 44,220.83 ns | 43,471.98 ns | 43,762.66 ns | 44,972.17 ns | 45,913.90 ns | 22,532.2 | 177.03 | 3.56 | 6 | 3.7842 | 24,032 B |
| 'IList<T> ForEach' | 1000 | 3,724.77 ns | 39.746 ns | 35.234 ns | 9.417 ns | 3,718.65 ns | 3,671.70 ns | 3,704.67 ns | 3,748.60 ns | 3,803.30 ns | 268,473.2 | 14.86 | 0.26 | 4 | 0.0038 | 32 B |
| 'IList<T> For' | 1000 | 2,292.13 ns | 45.742 ns | 125.217 ns | 13.425 ns | 2,235.74 ns | 2,189.63 ns | 2,217.81 ns | 2,292.13 ns | 2,681.89 ns | 436,275.5 | 9.50 | 0.84 | 3 | - | - |
| 'IList For' | 1000 | 41,985.74 ns | 284.316 ns | 265.949 ns | 68.668 ns | 41,970.47 ns | 41,533.08 ns | 41,786.44 ns | 42,149.01 ns | 42,436.58 ns | 23,817.6 | 167.47 | 2.09 | 5 | 3.7842 | 24,000 B |
| 'IReadOnlyCollection<T> ForEach' | 1000 | 3,723.58 ns | 32.423 ns | 28.742 ns | 7.682 ns | 3,722.26 ns | 3,675.26 ns | 3,709.30 ns | 3,734.30 ns | 3,782.82 ns | 268,558.9 | 14.86 | 0.24 | 4 | 0.0038 | 32 B |
| 'IReadOnlyList<T> ForEach' | 1000 | 3,728.94 ns | 21.709 ns | 20.307 ns | 5.243 ns | 3,729.01 ns | 3,689.50 ns | 3,713.40 ns | 3,745.30 ns | 3,762.13 ns | 268,172.8 | 14.87 | 0.22 | 4 | 0.0038 | 32 B |
| 'IReadOnlyList<T> For' | 1000 | 2,210.42 ns | 15.137 ns | 11.818 ns | 3.412 ns | 2,215.61 ns | 2,183.52 ns | 2,201.32 ns | 2,218.04 ns | 2,222.18 ns | 452,402.8 | 8.81 | 0.15 | 3 | - | - |
| | | | | | | | | | | | | | | | | |
| **'T[] ForEach'** | **10000** | **2,480.21 ns** | **28.173 ns** | **24.975 ns** | **6.675 ns** | **2,472.34 ns** | **2,446.79 ns** | **2,462.87 ns** | **2,490.44 ns** | **2,533.64 ns** | **403,191.1** | **1.00** | **0.01** | **1** | **-** | **-** |
| 'T[] For' | 10000 | 2,479.78 ns | 22.468 ns | 21.016 ns | 5.426 ns | 2,481.48 ns | 2,448.21 ns | 2,464.95 ns | 2,493.74 ns | 2,523.66 ns | 403,262.3 | 1.00 | 0.00 | 1 | - | - |
| 'ICollection ForEach' | 10000 | 450,664.23 ns | 4,762.307 ns | 4,454.664 ns | 1,150.189 ns | 449,032.81 ns | 445,330.52 ns | 447,427.54 ns | 455,472.90 ns | 458,911.82 ns | 2,218.9 | 181.74 | 2.01 | 6 | 38.0859 | 240,032 B |
| 'ICollection<T> ForEach' | 10000 | 36,977.17 ns | 422.986 ns | 395.661 ns | 102.159 ns | 36,877.27 ns | 36,556.82 ns | 36,657.64 ns | 37,227.68 ns | 37,866.51 ns | 27,043.7 | 14.91 | 0.21 | 3 | - | 32 B |
| 'IEnumerable ForEach' | 10000 | 440,496.38 ns | 8,157.467 ns | 7,630.499 ns | 1,970.186 ns | 438,060.89 ns | 432,176.12 ns | 434,677.51 ns | 444,265.14 ns | 457,686.23 ns | 2,270.2 | 177.65 | 3.52 | 5 | 38.0859 | 240,032 B |
| 'IEnumerable<T> ForEach' | 10000 | 36,923.64 ns | 301.570 ns | 267.334 ns | 71.448 ns | 36,907.21 ns | 36,401.15 ns | 36,799.58 ns | 37,136.48 ns | 37,355.09 ns | 27,082.9 | 14.90 | 0.20 | 3 | - | 32 B |
| 'IList ForEach' | 10000 | 476,414.52 ns | 12,121.599 ns | 34,386.957 ns | 3,565.761 ns | 461,221.48 ns | 441,994.63 ns | 455,110.25 ns | 482,209.57 ns | 569,192.48 ns | 2,099.0 | 219.27 | 9.70 | 7 | 38.0859 | 240,032 B |
| 'IList<T> ForEach' | 10000 | 36,810.24 ns | 251.114 ns | 222.606 ns | 59.494 ns | 36,760.12 ns | 36,536.97 ns | 36,651.23 ns | 36,871.08 ns | 37,279.57 ns | 27,166.4 | 14.85 | 0.19 | 3 | - | 32 B |
| 'IList<T> For' | 10000 | 22,074.95 ns | 126.265 ns | 111.930 ns | 29.915 ns | 22,059.32 ns | 21,925.39 ns | 22,007.81 ns | 22,134.80 ns | 22,359.59 ns | 45,300.2 | 8.91 | 0.09 | 2 | - | - |
| 'IList For' | 10000 | 402,517.07 ns | 3,872.707 ns | 3,433.054 ns | 917.522 ns | 402,738.26 ns | 395,414.01 ns | 400,576.17 ns | 404,575.00 ns | 408,203.12 ns | 2,484.4 | 162.39 | 1.93 | 4 | 38.0859 | 240,000 B |
| 'IReadOnlyCollection<T> ForEach' | 10000 | 36,816.23 ns | 218.154 ns | 193.388 ns | 51.685 ns | 36,818.44 ns | 36,470.48 ns | 36,679.02 ns | 36,895.48 ns | 37,180.02 ns | 27,161.9 | 14.85 | 0.15 | 3 | - | 32 B |
| 'IReadOnlyList<T> ForEach' | 10000 | 37,731.43 ns | 665.521 ns | 1,645.003 ns | 193.865 ns | 37,105.96 ns | 36,388.18 ns | 36,871.87 ns | 37,515.64 ns | 43,512.96 ns | 26,503.1 | 16.10 | 1.00 | 3 | - | 32 B |
| 'IReadOnlyList<T> For' | 10000 | 22,039.42 ns | 158.744 ns | 148.489 ns | 38.340 ns | 22,065.38 ns | 21,826.13 ns | 21,916.03 ns | 22,112.66 ns | 22,344.01 ns | 45,373.2 | 8.89 | 0.10 | 2 | - | - |
| | | | | | | | | | | | | | | | | |
| **'T[] ForEach'** | **100000** | **24,965.73 ns** | **280.914 ns** | **262.767 ns** | **67.846 ns** | **24,982.91 ns** | **24,429.50 ns** | **24,828.94 ns** | **25,103.50 ns** | **25,421.77 ns** | **40,054.9** | **1.00** | **0.02** | **1** | **-** | **-** |
| 'T[] For' | 100000 | 24,988.13 ns | 367.489 ns | 343.749 ns | 88.756 ns | 24,942.79 ns | 24,486.06 ns | 24,733.16 ns | 25,140.39 ns | 25,682.75 ns | 40,019.0 | 1.00 | 0.00 | 1 | - | - |
| 'ICollection ForEach' | 100000 | 4,663,385.49 ns | 27,701.424 ns | 24,556.591 ns | 6,563.025 ns | 4,656,078.52 ns | 4,625,183.59 ns | 4,646,250.98 ns | 4,681,358.20 ns | 4,710,471.09 ns | 214.4 | 186.56 | 3.30 | 5 | 375.0000 | 2,400,032 B |
| 'ICollection<T> ForEach' | 100000 | 369,654.39 ns | 2,242.035 ns | 1,987.506 ns | 531.183 ns | 369,184.55 ns | 366,654.08 ns | 368,409.12 ns | 371,200.72 ns | 372,945.53 ns | 2,705.2 | 14.79 | 0.21 | 3 | - | 32 B |
| 'IEnumerable ForEach' | 100000 | 4,990,289.50 ns | 220,968.240 ns | 651,529.842 ns | 65,152.984 ns | 4,757,632.81 ns | 4,301,846.88 ns | 4,415,105.27 ns | 5,462,233.40 ns | 6,792,057.81 ns | 200.4 | 237.87 | 25.20 | 5 | 375.0000 | 2,400,032 B |
| 'IEnumerable<T> ForEach' | 100000 | 371,595.68 ns | 4,343.646 ns | 3,850.529 ns | 1,029.097 ns | 371,729.42 ns | 366,337.60 ns | 368,775.24 ns | 373,126.15 ns | 379,641.02 ns | 2,691.1 | 14.87 | 0.30 | 3 | - | 32 B |
| 'IList ForEach' | 100000 | 4,694,311.72 ns | 81,029.927 ns | 137,594.965 ns | 22,620.473 ns | 4,650,526.56 ns | 4,513,776.56 ns | 4,603,207.81 ns | 4,754,300.00 ns | 5,078,842.19 ns | 213.0 | 189.68 | 6.76 | 5 | 375.0000 | 2,400,032 B |
| 'IList<T> ForEach' | 100000 | 402,224.50 ns | 13,545.307 ns | 39,938.644 ns | 3,993.864 ns | 382,351.61 ns | 356,554.74 ns | 371,107.48 ns | 435,103.78 ns | 526,843.99 ns | 2,486.2 | 17.23 | 1.70 | 3 | - | 32 B |
| 'IList<T> For' | 100000 | 222,684.55 ns | 3,440.825 ns | 8,309.978 ns | 1,000.404 ns | 220,208.67 ns | 214,452.81 ns | 218,039.67 ns | 224,709.33 ns | 257,734.42 ns | 4,490.7 | 9.25 | 0.60 | 2 | - | - |
| 'IList For' | 100000 | 4,148,977.19 ns | 42,713.866 ns | 39,954.577 ns | 10,316.227 ns | 4,141,464.06 ns | 4,085,260.94 ns | 4,122,689.45 ns | 4,185,319.14 ns | 4,209,053.91 ns | 241.0 | 166.07 | 3.15 | 4 | 375.0000 | 2,400,000 B |
| 'IReadOnlyCollection<T> ForEach' | 100000 | 374,118.02 ns | 4,429.091 ns | 3,926.274 ns | 1,049.341 ns | 373,143.12 ns | 368,553.76 ns | 371,995.09 ns | 375,823.57 ns | 381,178.22 ns | 2,673.0 | 14.97 | 0.28 | 3 | - | 32 B |
| 'IReadOnlyList<T> ForEach' | 100000 | 369,692.28 ns | 5,282.174 ns | 4,940.949 ns | 1,275.748 ns | 367,041.46 ns | 362,866.11 ns | 366,144.36 ns | 374,412.79 ns | 377,804.25 ns | 2,705.0 | 14.80 | 0.34 | 3 | - | 32 B |
| 'IReadOnlyList<T> For' | 100000 | 228,563.38 ns | 5,373.123 ns | 15,588.405 ns | 1,582.763 ns | 220,645.70 ns | 213,789.77 ns | 218,444.41 ns | 230,251.32 ns | 267,281.05 ns | 4,375.2 | 9.82 | 0.81 | 2 | - | - |

----------
**Array Sort Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------------------- |------- |----------------:|--------------:|----------------:|--------------:|----------------:|----------------:|----------------:|----------------:|----------------:|-------------:|------:|--------:|-----:|----------:|----------:|----------:|------------:|
| **'Linq Array.OrderBy()'** | **100** | **4,407.8 ns** | **59.68 ns** | **55.82 ns** | **14.41 ns** | **4,394.4 ns** | **4,320.4 ns** | **4,372.2 ns** | **4,422.7 ns** | **4,521.8 ns** | **226,869.27** | **1.00** | **0.00** | **3** | **0.2975** | **-** | **-** | **1,872 B** |
| Array.OrderByF() | 100 | 988.5 ns | 19.36 ns | 24.49 ns | 5.11 ns | 986.8 ns | 953.2 ns | 967.1 ns | 999.1 ns | 1,041.8 ns | 1,011,641.49 | 0.23 | 0.00 | 2 | 0.1335 | - | - | 848 B |
| 'PLinq Array.AsParallel().OrderBy()' | 100 | 38,481.5 ns | 3,663.26 ns | 10,801.21 ns | 1,080.12 ns | 34,617.3 ns | 25,536.8 ns | 30,369.8 ns | 48,373.9 ns | 66,111.2 ns | 25,986.53 | 8.88 | 1.64 | 6 | 17.1204 | 2.3804 | - | 69,222 B |
| Array.Sort() | 100 | 296.6 ns | 18.36 ns | 53.55 ns | 5.41 ns | 295.5 ns | 240.8 ns | 246.4 ns | 328.1 ns | 447.5 ns | 3,371,910.16 | 0.08 | 0.01 | 1 | - | - | - | - |
| List.OrderBy | 100 | 4,486.0 ns | 19.55 ns | 17.33 ns | 4.63 ns | 4,482.4 ns | 4,461.7 ns | 4,475.6 ns | 4,497.1 ns | 4,525.0 ns | 222,917.47 | 1.02 | 0.01 | 4 | 0.2975 | - | - | 1,904 B |
| List.OrderByF | 100 | 5,611.2 ns | 30.87 ns | 25.78 ns | 7.15 ns | 5,615.8 ns | 5,539.3 ns | 5,604.9 ns | 5,622.5 ns | 5,650.8 ns | 178,215.73 | 1.27 | 0.02 | 5 | 0.0839 | - | - | 552 B |
| List.Sort() | 100 | 280.8 ns | 10.36 ns | 30.56 ns | 3.06 ns | 277.2 ns | 243.3 ns | 250.9 ns | 305.5 ns | 354.6 ns | 3,561,055.38 | 0.07 | 0.00 | 1 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Linq Array.OrderBy()'** | **1000** | **84,885.4 ns** | **472.07 ns** | **418.47 ns** | **111.84 ns** | **84,887.0 ns** | **84,210.0 ns** | **84,571.8 ns** | **85,026.2 ns** | **85,708.6 ns** | **11,780.59** | **1.00** | **0.00** | **4** | **2.5635** | **-** | **-** | **16,272 B** |
| Array.OrderByF() | 1000 | 29,455.7 ns | 1,095.75 ns | 3,230.83 ns | 323.08 ns | 27,501.4 ns | 27,185.9 ns | 27,365.7 ns | 31,845.8 ns | 38,371.0 ns | 33,949.25 | 0.36 | 0.05 | 3 | 1.2817 | - | - | 8,048 B |
| 'PLinq Array.AsParallel().OrderBy()' | 1000 | 129,419.7 ns | 12,437.99 ns | 36,673.71 ns | 3,667.37 ns | 122,285.2 ns | 75,837.1 ns | 97,444.6 ns | 165,298.0 ns | 196,484.6 ns | 7,726.80 | 1.09 | 0.14 | 6 | 22.4609 | 3.9063 | - | 122,569 B |
| Array.Sort() | 1000 | 3,994.2 ns | 146.81 ns | 432.86 ns | 43.29 ns | 4,183.2 ns | 3,462.9 ns | 3,509.9 ns | 4,340.5 ns | 4,958.0 ns | 250,363.14 | 0.05 | 0.01 | 2 | - | - | - | - |
| List.OrderBy | 1000 | 85,837.5 ns | 1,188.47 ns | 1,111.69 ns | 287.04 ns | 85,432.4 ns | 84,382.7 ns | 85,094.9 ns | 86,443.2 ns | 88,051.0 ns | 11,649.92 | 1.01 | 0.01 | 4 | 2.5635 | - | - | 16,304 B |
| List.OrderByF | 1000 | 93,590.0 ns | 1,375.49 ns | 1,286.64 ns | 332.21 ns | 93,446.6 ns | 91,265.5 ns | 92,976.7 ns | 94,346.4 ns | 96,124.2 ns | 10,684.90 | 1.10 | 0.02 | 5 | 0.6104 | - | - | 4,152 B |
| List.Sort() | 1000 | 3,743.8 ns | 38.62 ns | 78.88 ns | 11.05 ns | 3,723.9 ns | 3,639.8 ns | 3,684.3 ns | 3,782.5 ns | 4,033.1 ns | 267,106.63 | 0.04 | 0.00 | 1 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Linq Array.OrderBy()'** | **10000** | **1,140,143.3 ns** | **7,118.25 ns** | **5,944.06 ns** | **1,648.59 ns** | **1,140,619.7 ns** | **1,130,695.1 ns** | **1,136,838.1 ns** | **1,142,943.8 ns** | **1,152,775.8 ns** | **877.08** | **1.00** | **0.00** | **3** | **25.3906** | **5.8594** | **-** | **160,272 B** |
| Array.OrderByF() | 10000 | 479,746.8 ns | 3,042.82 ns | 2,697.38 ns | 720.91 ns | 479,661.7 ns | 475,625.0 ns | 477,795.3 ns | 480,621.0 ns | 485,525.3 ns | 2,084.43 | 0.42 | 0.00 | 2 | 12.2070 | - | - | 80,048 B |
| 'PLinq Array.AsParallel().OrderBy()' | 10000 | 559,012.6 ns | 47,484.16 ns | 140,008.11 ns | 14,000.81 ns | 493,089.6 ns | 416,658.5 ns | 445,621.9 ns | 710,935.0 ns | 864,600.6 ns | 1,788.87 | 0.38 | 0.01 | 2 | 137.6953 | 9.7656 | - | 775,896 B |
| Array.Sort() | 10000 | 53,484.4 ns | 1,971.00 ns | 5,749.50 ns | 580.79 ns | 54,292.9 ns | 46,583.5 ns | 47,690.9 ns | 57,136.8 ns | 69,607.1 ns | 18,697.04 | 0.05 | 0.00 | 1 | - | - | - | - |
| List.OrderBy | 10000 | 1,184,776.6 ns | 22,151.53 ns | 19,636.76 ns | 5,248.14 ns | 1,179,572.6 ns | 1,156,454.9 ns | 1,176,131.9 ns | 1,191,886.7 ns | 1,226,707.8 ns | 844.04 | 1.04 | 0.02 | 4 | 25.3906 | 5.8594 | - | 160,304 B |
| List.OrderByF | 10000 | 1,285,173.1 ns | 20,487.54 ns | 19,164.05 ns | 4,948.14 ns | 1,281,280.4 ns | 1,249,514.7 ns | 1,272,730.9 ns | 1,303,005.6 ns | 1,315,475.1 ns | 778.11 | 1.13 | 0.02 | 5 | 5.8594 | - | - | 40,152 B |
| List.Sort() | 10000 | 55,012.1 ns | 824.67 ns | 771.40 ns | 199.17 ns | 54,851.2 ns | 53,541.4 ns | 54,453.5 ns | 55,468.5 ns | 56,504.6 ns | 18,177.81 | 0.05 | 0.00 | 1 | - | - | - | - |
| | | | | | | | | | | | | | | | | | | |
| **'Linq Array.OrderBy()'** | **100000** | **15,606,035.1 ns** | **289,376.42 ns** | **676,408.05 ns** | **83,898.09 ns** | **15,423,529.7 ns** | **14,979,290.6 ns** | **15,257,140.6 ns** | **15,674,523.4 ns** | **18,496,048.4 ns** | **64.08** | **1.00** | **0.00** | **4** | **406.2500** | **406.2500** | **406.2500** | **1,602,034 B** |
| Array.OrderByF() | 100000 | 6,143,965.1 ns | 120,888.29 ns | 157,188.92 ns | 32,086.05 ns | 6,101,582.0 ns | 5,877,434.4 ns | 6,035,355.3 ns | 6,253,035.2 ns | 6,435,107.8 ns | 162.76 | 0.39 | 0.03 | 2 | 203.1250 | 203.1250 | 203.1250 | 800,043 B |
| 'PLinq Array.AsParallel().OrderBy()' | 100000 | 7,458,489.7 ns | 533,163.46 ns | 1,572,044.50 ns | 157,204.45 ns | 8,065,553.9 ns | 4,980,988.3 ns | 5,748,154.5 ns | 8,569,432.0 ns | 11,147,761.7 ns | 134.08 | 0.49 | 0.11 | 3 | 1851.5625 | 1781.2500 | 1000.0000 | 8,966,646 B |
| Array.Sort() | 100000 | 525,143.1 ns | 5,377.12 ns | 5,029.76 ns | 1,298.68 ns | 523,843.7 ns | 519,180.1 ns | 521,061.0 ns | 528,684.8 ns | 533,768.5 ns | 1,904.24 | 0.03 | 0.00 | 1 | - | - | - | - |
| List.OrderBy | 100000 | 15,203,791.4 ns | 260,626.31 ns | 243,790.01 ns | 62,946.31 ns | 15,193,157.8 ns | 14,832,623.4 ns | 15,029,870.3 ns | 15,313,012.5 ns | 15,793,423.4 ns | 65.77 | 0.94 | 0.06 | 4 | 406.2500 | 406.2500 | 406.2500 | 1,602,066 B |
| List.OrderByF | 100000 | 16,092,447.1 ns | 103,614.54 ns | 91,851.59 ns | 24,548.37 ns | 16,100,175.0 ns | 15,913,290.6 ns | 16,045,238.3 ns | 16,150,824.2 ns | 16,243,343.8 ns | 62.14 | 0.99 | 0.07 | 5 | 93.7500 | 93.7500 | 93.7500 | 400,654 B |
| List.Sort() | 100000 | 532,555.9 ns | 10,626.63 ns | 9,940.15 ns | 2,566.54 ns | 528,698.2 ns | 520,594.5 ns | 525,416.6 ns | 537,536.8 ns | 555,187.6 ns | 1,877.74 | 0.03 | 0.00 | 1 | - | - | - | - |

----------
**Bitwise Vs Modulo**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|----------------- |------- |-------------:|-----------:|-------------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Bitwise Modulo'** | **100** | **31.33 ns** | **0.416 ns** | **0.683 ns** | **0.115 ns** | **31.10 ns** | **30.64 ns** | **30.84 ns** | **31.72 ns** | **34.02 ns** | **31,913,382.1** | **1.00** | **0.03** | **1** | **-** |
| 'Normal Modulo' | 100 | 31.70 ns | 0.616 ns | 0.546 ns | 0.146 ns | 31.61 ns | 30.98 ns | 31.34 ns | 32.22 ns | 32.55 ns | 31,547,759.7 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Modulo'** | **1000** | **259.35 ns** | **4.305 ns** | **4.606 ns** | **1.086 ns** | **257.94 ns** | **253.69 ns** | **256.14 ns** | **260.76 ns** | **269.43 ns** | **3,855,788.9** | **1.02** | **0.02** | **1** | **-** |
| 'Normal Modulo' | 1000 | 255.94 ns | 1.546 ns | 1.371 ns | 0.366 ns | 255.28 ns | 254.50 ns | 254.96 ns | 256.79 ns | 258.78 ns | 3,907,097.2 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Modulo'** | **10000** | **2,529.52 ns** | **49.336 ns** | **48.455 ns** | **12.114 ns** | **2,507.99 ns** | **2,471.80 ns** | **2,493.83 ns** | **2,558.83 ns** | **2,624.61 ns** | **395,332.0** | **1.02** | **0.02** | **1** | **-** |
| 'Normal Modulo' | 10000 | 2,495.89 ns | 21.960 ns | 19.467 ns | 5.203 ns | 2,495.37 ns | 2,463.33 ns | 2,485.80 ns | 2,505.33 ns | 2,526.47 ns | 400,658.4 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Modulo'** | **100000** | **25,378.26 ns** | **401.528 ns** | **1,007.355 ns** | **117.103 ns** | **25,028.09 ns** | **24,575.85 ns** | **24,887.68 ns** | **25,287.39 ns** | **28,706.06 ns** | **39,403.8** | **1.08** | **0.06** | **1** | **-** |
| 'Normal Modulo' | 100000 | 24,956.94 ns | 182.256 ns | 161.565 ns | 43.180 ns | 24,927.23 ns | 24,722.71 ns | 24,856.42 ns | 25,044.04 ns | 25,338.72 ns | 40,069.0 | 1.00 | 0.00 | 1 | - |

----------
**Bitwise Vs Normal Division**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|------------------- |------- |-------------:|-----------:|-----------:|----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Bitwise Division'** | **100** | **31.85 ns** | **0.430 ns** | **0.359 ns** | **0.100 ns** | **31.72 ns** | **31.29 ns** | **31.61 ns** | **31.94 ns** | **32.50 ns** | **31,398,992.8** | **1.02** | **0.01** | **2** | **-** |
| 'Normal Division' | 100 | 31.10 ns | 0.451 ns | 0.422 ns | 0.109 ns | 30.96 ns | 30.40 ns | 30.88 ns | 31.47 ns | 31.99 ns | 32,158,874.3 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Division'** | **1000** | **246.57 ns** | **2.769 ns** | **2.313 ns** | **0.641 ns** | **246.11 ns** | **243.73 ns** | **244.68 ns** | **248.61 ns** | **250.84 ns** | **4,055,603.3** | **0.88** | **0.01** | **1** | **-** |
| 'Normal Division' | 1000 | 255.61 ns | 4.655 ns | 13.130 ns | 1.369 ns | 249.42 ns | 244.06 ns | 246.80 ns | 256.33 ns | 298.89 ns | 3,912,183.0 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Division'** | **10000** | **2,421.29 ns** | **25.140 ns** | **22.286 ns** | **5.956 ns** | **2,414.35 ns** | **2,393.16 ns** | **2,405.75 ns** | **2,437.27 ns** | **2,460.38 ns** | **413,002.9** | **0.99** | **0.02** | **1** | **-** |
| 'Normal Division' | 10000 | 2,443.02 ns | 34.577 ns | 30.651 ns | 8.192 ns | 2,438.19 ns | 2,387.69 ns | 2,428.31 ns | 2,457.02 ns | 2,501.11 ns | 409,329.6 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Division'** | **100000** | **23,978.63 ns** | **223.192 ns** | **186.376 ns** | **51.691 ns** | **23,949.79 ns** | **23,666.10 ns** | **23,822.82 ns** | **24,113.10 ns** | **24,308.56 ns** | **41,703.8** | **0.99** | **0.02** | **1** | **-** |
| 'Normal Division' | 100000 | 24,180.50 ns | 348.030 ns | 325.547 ns | 84.056 ns | 24,172.35 ns | 23,775.94 ns | 23,897.75 ns | 24,382.83 ns | 24,921.06 ns | 41,355.6 | 1.00 | 0.00 | 1 | - |

----------
**Bitwise Vs Normal Multiplication**

| Method | Count | Mean | Error | StdDev | StdErr | Min | Q1 | Median | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|------------------------- |------- |-------------:|-----------:|-----------:|----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Bitwise Multiplication'** | **100** | **31.60 ns** | **0.656 ns** | **0.730 ns** | **0.167 ns** | **30.77 ns** | **30.94 ns** | **31.50 ns** | **32.19 ns** | **32.88 ns** | **31,645,322.2** | **1.01** | **0.03** | **1** | **-** |
| 'Normal Multiplication' | 100 | 30.93 ns | 0.359 ns | 0.318 ns | 0.085 ns | 30.38 ns | 30.71 ns | 30.92 ns | 31.06 ns | 31.51 ns | 32,334,462.0 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Multiplication'** | **1000** | **248.21 ns** | **3.693 ns** | **3.455 ns** | **0.892 ns** | **243.27 ns** | **245.88 ns** | **247.70 ns** | **250.27 ns** | **255.27 ns** | **4,028,918.2** | **0.99** | **0.02** | **1** | **-** |
| 'Normal Multiplication' | 1000 | 251.44 ns | 3.182 ns | 2.484 ns | 0.717 ns | 246.38 ns | 250.08 ns | 251.59 ns | 253.06 ns | 255.28 ns | 3,977,113.8 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Multiplication'** | **10000** | **2,455.89 ns** | **30.350 ns** | **28.389 ns** | **7.330 ns** | **2,420.31 ns** | **2,431.38 ns** | **2,454.53 ns** | **2,479.89 ns** | **2,505.26 ns** | **407,184.2** | **1.01** | **0.02** | **1** | **-** |
| 'Normal Multiplication' | 10000 | 2,435.82 ns | 31.330 ns | 29.307 ns | 7.567 ns | 2,392.38 ns | 2,411.36 ns | 2,429.13 ns | 2,463.03 ns | 2,478.20 ns | 410,539.8 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Bitwise Multiplication'** | **100000** | **24,105.13 ns** | **393.615 ns** | **348.929 ns** | **93.255 ns** | **23,743.19 ns** | **23,815.67 ns** | **24,055.82 ns** | **24,291.79 ns** | **24,906.91 ns** | **41,485.0** | **1.00** | **0.01** | **1** | **-** |
| 'Normal Multiplication' | 100000 | 24,137.89 ns | 285.225 ns | 266.799 ns | 68.887 ns | 23,738.70 ns | 23,928.76 ns | 24,047.06 ns | 24,379.82 ns | 24,506.15 ns | 41,428.6 | 1.00 | 0.00 | 1 | - |

----------
**Checked Vs Unchecked Math**

| Method | Count | Mean | Error | StdDev | StdErr | Min | Q1 | Median | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|----------------- |------- |-------------:|-----------:|-----------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Checked math'** | **100** | **31.14 ns** | **0.547 ns** | **0.485 ns** | **0.130 ns** | **30.49 ns** | **30.84 ns** | **31.18 ns** | **31.35 ns** | **32.00 ns** | **32,108,861.7** | **1.00** | **0.00** | **1** | **-** |
| 'Unchecked math' | 100 | 31.26 ns | 0.498 ns | 0.466 ns | 0.120 ns | 30.68 ns | 30.85 ns | 31.12 ns | 31.56 ns | 32.09 ns | 31,992,365.5 | 1.00 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Checked math'** | **1000** | **250.12 ns** | **3.615 ns** | **3.382 ns** | **0.873 ns** | **244.49 ns** | **247.34 ns** | **249.21 ns** | **253.30 ns** | **255.06 ns** | **3,998,052.7** | **1.00** | **0.00** | **1** | **-** |
| 'Unchecked math' | 1000 | 250.03 ns | 3.987 ns | 3.730 ns | 0.963 ns | 244.98 ns | 246.56 ns | 250.26 ns | 252.31 ns | 257.63 ns | 3,999,526.7 | 1.00 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Checked math'** | **10000** | **2,421.88 ns** | **27.134 ns** | **25.381 ns** | **6.553 ns** | **2,382.54 ns** | **2,402.51 ns** | **2,421.47 ns** | **2,440.53 ns** | **2,466.80 ns** | **412,902.3** | **1.00** | **0.00** | **1** | **-** |
| 'Unchecked math' | 10000 | 2,410.42 ns | 16.765 ns | 13.999 ns | 3.883 ns | 2,383.23 ns | 2,403.67 ns | 2,413.46 ns | 2,415.58 ns | 2,437.15 ns | 414,865.6 | 1.00 | 0.01 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Checked math'** | **100000** | **24,070.51 ns** | **220.235 ns** | **206.008 ns** | **53.191 ns** | **23,795.42 ns** | **23,909.99 ns** | **24,019.20 ns** | **24,254.79 ns** | **24,433.31 ns** | **41,544.6** | **1.00** | **0.00** | **1** | **-** |
| 'Unchecked math' | 100000 | 24,539.26 ns | 462.473 ns | 532.584 ns | 119.089 ns | 23,770.66 ns | 24,150.07 ns | 24,455.89 ns | 25,079.37 ns | 25,539.57 ns | 40,751.0 | 1.02 | 0.02 | 1 | - |

----------
**Class Vs Struct Access**

| Method | Count | Mean | Error | StdDev | StdErr | Min | Q1 | Median | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|-------------- |------- |-------------:|-----------:|-----------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Class test'** | **100** | **31.44 ns** | **0.623 ns** | **0.583 ns** | **0.151 ns** | **30.64 ns** | **31.01 ns** | **31.38 ns** | **31.88 ns** | **32.45 ns** | **31,805,703.9** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 100 | 31.22 ns | 0.525 ns | 0.491 ns | 0.127 ns | 30.68 ns | 30.89 ns | 31.05 ns | 31.46 ns | 32.12 ns | 32,027,557.1 | 0.99 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **1000** | **245.60 ns** | **2.923 ns** | **2.441 ns** | **0.677 ns** | **243.52 ns** | **243.94 ns** | **244.96 ns** | **246.08 ns** | **251.37 ns** | **4,071,646.8** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 1000 | 248.90 ns | 3.744 ns | 3.319 ns | 0.887 ns | 245.06 ns | 246.55 ns | 247.72 ns | 250.54 ns | 256.81 ns | 4,017,610.2 | 1.01 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **10000** | **2,426.29 ns** | **24.594 ns** | **23.006 ns** | **5.940 ns** | **2,388.97 ns** | **2,406.61 ns** | **2,426.37 ns** | **2,434.97 ns** | **2,465.43 ns** | **412,152.3** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 10000 | 2,465.69 ns | 33.790 ns | 31.608 ns | 8.161 ns | 2,400.71 ns | 2,440.91 ns | 2,466.26 ns | 2,487.32 ns | 2,511.12 ns | 405,565.8 | 1.02 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **100000** | **24,130.44 ns** | **276.078 ns** | **258.244 ns** | **66.678 ns** | **23,785.59 ns** | **23,947.62 ns** | **24,067.41 ns** | **24,233.63 ns** | **24,654.35 ns** | **41,441.4** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 100000 | 24,325.95 ns | 420.947 ns | 393.754 ns | 101.667 ns | 23,802.42 ns | 24,019.54 ns | 24,143.17 ns | 24,637.95 ns | 25,040.93 ns | 41,108.4 | 1.01 | 0.02 | 1 | - |

----------
**Class Vs Struct Creation**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------- |------- |----------------:|---------------:|---------------:|--------------:|----------------:|----------------:|----------------:|----------------:|----------------:|-------------:|------:|--------:|-----:|---------:|---------:|---------:|------------:|
| **'Class test'** | **100** | **447.01 ns** | **8.900 ns** | **8.741 ns** | **2.185 ns** | **445.31 ns** | **436.74 ns** | **440.87 ns** | **452.37 ns** | **465.93 ns** | **2,237,069.8** | **1.00** | **0.00** | **2** | **0.5136** | **0.0057** | **-** | **3,224 B** |
| 'Struct test' | 100 | 60.75 ns | 1.097 ns | 0.973 ns | 0.260 ns | 60.55 ns | 59.52 ns | 60.20 ns | 60.93 ns | 62.69 ns | 16,459,798.9 | 0.14 | 0.00 | 1 | 0.0675 | - | - | 424 B |
| | | | | | | | | | | | | | | | | | | |
| **'Class test'** | **1000** | **5,142.52 ns** | **273.153 ns** | **801.109 ns** | **80.515 ns** | **4,716.65 ns** | **4,292.84 ns** | **4,465.71 ns** | **5,754.54 ns** | **7,660.50 ns** | **194,457.1** | **1.00** | **0.00** | **2** | **5.0964** | **0.5035** | **-** | **32,024 B** |
| 'Struct test' | 1000 | 532.42 ns | 4.778 ns | 4.693 ns | 1.173 ns | 531.84 ns | 525.29 ns | 529.51 ns | 534.19 ns | 542.67 ns | 1,878,216.9 | 0.09 | 0.01 | 1 | 0.6409 | - | - | 4,024 B |
| | | | | | | | | | | | | | | | | | | |
| **'Class test'** | **10000** | **89,837.64 ns** | **11,158.897 ns** | **30,358.603 ns** | **3,273.652 ns** | **79,027.86 ns** | **59,077.21 ns** | **72,198.12 ns** | **94,586.14 ns** | **193,437.10 ns** | **11,131.2** | **1.00** | **0.00** | **2** | **50.8423** | **16.9067** | **-** | **320,024 B** |
| 'Struct test' | 10000 | 5,462.45 ns | 209.765 ns | 618.497 ns | 61.850 ns | 5,253.87 ns | 4,799.19 ns | 4,918.28 ns | 5,921.05 ns | 7,375.48 ns | 183,068.2 | 0.07 | 0.02 | 1 | 6.3248 | - | - | 40,024 B |
| | | | | | | | | | | | | | | | | | | |
| **'Class test'** | **100000** | **2,279,456.50 ns** | **114,461.470 ns** | **333,889.479 ns** | **33,727.931 ns** | **2,198,443.16 ns** | **1,720,947.66 ns** | **2,064,430.96 ns** | **2,494,960.16 ns** | **3,151,168.16 ns** | **438.7** | **1.00** | **0.00** | **2** | **498.0469** | **248.0469** | **248.0469** | **3,200,024 B** |
| 'Struct test' | 100000 | 153,246.75 ns | 1,748.649 ns | 1,550.132 ns | 414.290 ns | 153,064.27 ns | 150,707.57 ns | 152,094.36 ns | 154,586.94 ns | 155,568.26 ns | 6,525.4 | 0.08 | 0.00 | 1 | 124.7559 | 124.7559 | 124.7559 | 400,024 B |

----------
**Class Vs Struct Set**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|-------------- |------- |-------------:|-----------:|-----------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Class test'** | **100** | **31.38 ns** | **0.384 ns** | **0.340 ns** | **0.091 ns** | **31.46 ns** | **30.87 ns** | **31.08 ns** | **31.52 ns** | **32.17 ns** | **31,870,417.8** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 100 | 31.92 ns | 0.494 ns | 0.462 ns | 0.119 ns | 31.74 ns | 31.33 ns | 31.62 ns | 32.19 ns | 32.81 ns | 31,323,597.2 | 1.02 | 0.02 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **1000** | **247.25 ns** | **2.183 ns** | **1.935 ns** | **0.517 ns** | **247.46 ns** | **243.94 ns** | **245.81 ns** | **248.32 ns** | **250.74 ns** | **4,044,548.8** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 1000 | 249.41 ns | 2.587 ns | 2.293 ns | 0.613 ns | 248.82 ns | 246.32 ns | 247.69 ns | 251.02 ns | 254.51 ns | 4,009,529.4 | 1.01 | 0.01 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **10000** | **2,570.51 ns** | **66.154 ns** | **189.809 ns** | **19.474 ns** | **2,472.14 ns** | **2,391.45 ns** | **2,432.19 ns** | **2,705.71 ns** | **3,084.04 ns** | **389,027.6** | **1.00** | **0.00** | **2** | **-** |
| 'Struct test' | 10000 | 2,416.64 ns | 24.405 ns | 21.634 ns | 5.782 ns | 2,415.41 ns | 2,381.77 ns | 2,403.41 ns | 2,432.22 ns | 2,451.10 ns | 413,797.0 | 0.87 | 0.03 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Class test'** | **100000** | **24,148.00 ns** | **254.980 ns** | **238.509 ns** | **61.583 ns** | **24,070.82 ns** | **23,748.12 ns** | **23,985.82 ns** | **24,306.89 ns** | **24,554.00 ns** | **41,411.3** | **1.00** | **0.00** | **1** | **-** |
| 'Struct test' | 100000 | 24,763.72 ns | 404.030 ns | 778.428 ns | 114.773 ns | 24,488.54 ns | 23,884.75 ns | 24,262.01 ns | 24,956.55 ns | 27,304.55 ns | 40,381.7 | 1.05 | 0.05 | 1 | - |

----------
**Concurrent Dictionary Set Tests**

| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated |
|--------------------- |---------:|---------:|---------:|------:|--------:|----------:|
| AddOrUpdate | 55.86 ns | 0.755 ns | 0.669 ns | 1.00 | 0.00 | - |
| DoesContainKeyAssign | 52.09 ns | 0.853 ns | 0.798 ns | 0.93 | 0.02 | - |
| DoesNotContainKey | 51.62 ns | 0.361 ns | 0.320 ns | 0.92 | 0.01 | - |

----------
**Concurrent Dictionary Tests**

| Method | Mean | Error | StdDev | Median | Ratio | RatioSD | Allocated |
|------------------- |----------:|----------:|----------:|----------:|------:|--------:|----------:|
| ContainsKey | 26.249 ns | 0.2027 ns | 0.1582 ns | 26.237 ns | 1.00 | 0.00 | - |
| ContainsKeyIndex | 25.996 ns | 0.2111 ns | 0.1871 ns | 25.946 ns | 0.99 | 0.01 | - |
| DoesNotContainsKey | 9.576 ns | 0.1973 ns | 0.2700 ns | 9.626 ns | 0.36 | 0.01 | - |
| TryGetValue | 14.462 ns | 0.7659 ns | 2.2462 ns | 13.061 ns | 0.52 | 0.05 | - |

----------
**Dictionary Assignment**

| Method | Mean | Error | StdDev | StdErr | Min | Q1 | Median | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|------------ |---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|-------------:|------:|--------:|-----:|-------:|----------:|
| AddOrAssign | 46.97 ns | 0.952 ns | 0.844 ns | 0.226 ns | 45.38 ns | 46.49 ns | 46.92 ns | 47.39 ns | 48.59 ns | 21,287,993.6 | 1.00 | 0.14 | 1 | 0.0344 | 216 B |
| Key | 59.32 ns | 3.390 ns | 9.782 ns | 0.998 ns | 38.64 ns | 53.18 ns | 59.25 ns | 65.21 ns | 82.65 ns | 16,857,934.8 | 1.00 | 0.00 | 2 | 0.0344 | 216 B |

----------
**Dictionary Key Tests**

| Method | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|--------------------------------------------------- |----------:|---------:|----------:|---------:|----------:|----------:|----------:|----------:|----------:|-------------:|------:|--------:|-----:|-------:|----------:|
| Dictionary<int,string> | 67.48 ns | 2.669 ns | 7.787 ns | 0.787 ns | 67.52 ns | 50.67 ns | 62.62 ns | 71.92 ns | 86.59 ns | 14,818,373.6 | 0.75 | 0.10 | 4 | 0.0343 | 216 B |
| Dictionary<long,string> | 49.16 ns | 0.950 ns | 1.478 ns | 0.261 ns | 48.77 ns | 47.25 ns | 47.91 ns | 50.26 ns | 52.18 ns | 20,342,174.7 | 0.54 | 0.08 | 2 | 0.0344 | 216 B |
| Dictionary<short,string> | 66.38 ns | 3.927 ns | 11.579 ns | 1.158 ns | 66.64 ns | 48.03 ns | 57.31 ns | 73.65 ns | 96.14 ns | 15,064,876.2 | 0.75 | 0.18 | 4 | 0.0344 | 216 B |
| 'Dictionary<int,string> Using string key HashCode' | 84.56 ns | 6.319 ns | 18.333 ns | 1.861 ns | 87.69 ns | 62.43 ns | 66.02 ns | 95.94 ns | 130.65 ns | 11,825,596.2 | 0.93 | 0.16 | 5 | 0.0343 | 216 B |
| 'Dictionary<string,string> key interned' | 305.04 ns | 1.790 ns | 1.587 ns | 0.424 ns | 304.89 ns | 302.58 ns | 304.44 ns | 306.26 ns | 307.89 ns | 3,278,220.4 | 3.78 | 0.19 | 7 | 0.0343 | 216 B |
| Dictionary<string,string> | 90.45 ns | 3.712 ns | 10.946 ns | 1.095 ns | 89.83 ns | 74.67 ns | 79.97 ns | 99.36 ns | 118.62 ns | 11,055,511.0 | 1.00 | 0.00 | 6 | 0.0343 | 216 B |
| Dictionary<uint,string> | 47.92 ns | 0.952 ns | 0.891 ns | 0.230 ns | 47.84 ns | 46.80 ns | 47.13 ns | 48.69 ns | 49.30 ns | 20,869,045.9 | 0.59 | 0.04 | 2 | 0.0344 | 216 B |
| Dictionary<ulong,string> | 46.79 ns | 0.659 ns | 0.616 ns | 0.159 ns | 46.72 ns | 45.88 ns | 46.40 ns | 47.17 ns | 48.20 ns | 21,370,940.3 | 0.57 | 0.04 | 1 | 0.0344 | 216 B |
| Dictionary<ushort,string> | 54.40 ns | 2.549 ns | 7.396 ns | 0.751 ns | 50.70 ns | 47.29 ns | 49.08 ns | 59.16 ns | 76.72 ns | 18,382,376.3 | 0.61 | 0.11 | 3 | 0.0344 | 216 B |

----------
**Dictionary Vs Concurrent Dictionary**

| Method | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|------------------------------------ |----------:|----------:|----------:|---------:|----------:|----------:|----------:|----------:|----------:|-------------:|------:|--------:|-----:|-------:|----------:|
| ConcurrentDictionary<string,string> | 308.49 ns | 26.365 ns | 76.907 ns | 7.769 ns | 284.45 ns | 228.63 ns | 243.19 ns | 345.80 ns | 501.62 ns | 3,241,570.8 | 4.01 | 0.22 | 2 | 0.1388 | 872 B |
| Dictionary<string,string> | 82.86 ns | 1.497 ns | 1.169 ns | 0.337 ns | 82.93 ns | 80.43 ns | 82.42 ns | 83.75 ns | 84.49 ns | 12,068,811.7 | 1.00 | 0.00 | 1 | 0.0343 | 216 B |

----------
**Dynamic Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|----------------------- |------- |--------------:|--------------:|--------------:|-------------:|--------------:|--------------:|--------------:|--------------:|--------------:|-------------:|------:|--------:|-----:|-------:|----------:|
| **'Dynamic value'** | **100** | **877.08 ns** | **50.269 ns** | **148.218 ns** | **14.822 ns** | **902.51 ns** | **661.40 ns** | **736.56 ns** | **988.65 ns** | **1,218.49 ns** | **1,140,142.5** | **1.00** | **0.00** | **3** | **0.0038** | **24 B** |
| 'Dynamic with casting' | 100 | 569.04 ns | 11.256 ns | 12.044 ns | 2.839 ns | 568.40 ns | 555.86 ns | 559.96 ns | 573.38 ns | 601.25 ns | 1,757,331.6 | 0.55 | 0.04 | 2 | 0.0038 | 24 B |
| 'Static typing' | 100 | 32.50 ns | 0.272 ns | 0.213 ns | 0.061 ns | 32.55 ns | 32.04 ns | 32.45 ns | 32.67 ns | 32.72 ns | 30,764,559.7 | 0.03 | 0.00 | 1 | - | - |
| | | | | | | | | | | | | | | | | |
| **'Dynamic value'** | **1000** | **7,588.35 ns** | **424.096 ns** | **1,250.458 ns** | **125.046 ns** | **6,782.50 ns** | **6,480.01 ns** | **6,582.24 ns** | **8,846.62 ns** | **11,377.59 ns** | **131,781.0** | **1.00** | **0.00** | **3** | **-** | **24 B** |
| 'Dynamic with casting' | 1000 | 6,479.22 ns | 362.563 ns | 1,069.024 ns | 106.902 ns | 5,781.48 ns | 5,451.43 ns | 5,543.96 ns | 7,504.15 ns | 8,727.25 ns | 154,339.5 | 0.86 | 0.10 | 2 | - | 24 B |
| 'Static typing' | 1000 | 263.11 ns | 4.308 ns | 3.819 ns | 1.021 ns | 262.70 ns | 255.91 ns | 261.23 ns | 264.98 ns | 269.85 ns | 3,800,675.8 | 0.03 | 0.00 | 1 | - | - |
| | | | | | | | | | | | | | | | | |
| **'Dynamic value'** | **10000** | **86,950.63 ns** | **5,224.265 ns** | **15,156.541 ns** | **1,538.914 ns** | **87,497.24 ns** | **64,086.21 ns** | **76,272.73 ns** | **94,619.43 ns** | **123,385.88 ns** | **11,500.8** | **1.00** | **0.00** | **3** | **-** | **24 B** |
| 'Dynamic with casting' | 10000 | 53,913.06 ns | 422.004 ns | 374.096 ns | 99.981 ns | 53,817.08 ns | 53,501.37 ns | 53,693.48 ns | 54,125.48 ns | 54,834.87 ns | 18,548.4 | 0.71 | 0.12 | 2 | - | 24 B |
| 'Static typing' | 10000 | 2,503.75 ns | 42.053 ns | 41.301 ns | 10.325 ns | 2,497.86 ns | 2,461.18 ns | 2,472.05 ns | 2,511.34 ns | 2,591.25 ns | 399,400.6 | 0.03 | 0.01 | 1 | - | - |
| | | | | | | | | | | | | | | | | |
| **'Dynamic value'** | **100000** | **755,516.47 ns** | **26,160.715 ns** | **75,896.978 ns** | **7,706.171 ns** | **774,122.85 ns** | **633,500.78 ns** | **680,984.77 ns** | **801,412.11 ns** | **934,830.76 ns** | **1,323.6** | **1.00** | **0.00** | **3** | **-** | **24 B** |
| 'Dynamic with casting' | 100000 | 536,680.48 ns | 4,012.300 ns | 3,556.799 ns | 950.595 ns | 535,851.37 ns | 532,473.24 ns | 533,994.97 ns | 538,449.71 ns | 544,076.86 ns | 1,863.3 | 0.79 | 0.08 | 2 | - | 25 B |
| 'Static typing' | 100000 | 24,670.00 ns | 215.351 ns | 201.439 ns | 52.011 ns | 24,653.03 ns | 24,302.55 ns | 24,533.32 ns | 24,817.84 ns | 24,986.61 ns | 40,535.1 | 0.04 | 0.00 | 1 | - | - |

----------
**Dynamo Tests**

| Method | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------------------------- |------ |-----------------:|---------------:|---------------:|-----------------:|-------:|--------:|-----:|----------:|---------:|---------:|------------:|
| **AnnonymousTest** | **1** | **14.10 ns** | **0.360 ns** | **1.021 ns** | **13.85 ns** | **1.02** | **0.10** | **1** | **0.0089** | **-** | **-** | **56 B** |
| ClassTest | 1 | 13.89 ns | 0.385 ns | 1.087 ns | 13.62 ns | 1.00 | 0.00 | 1 | 0.0089 | - | - | 56 B |
| ConcurrentDictionaryConversionTest | 1 | 164.44 ns | 3.373 ns | 5.818 ns | 163.15 ns | 12.14 | 1.01 | 3 | 0.1440 | 0.0007 | - | 904 B |
| DynamoAnonymousConversionTest | 1 | 355.11 ns | 10.561 ns | 30.639 ns | 356.11 ns | 25.64 | 2.77 | 6 | 0.0482 | - | - | 304 B |
| DynamoConversionTest | 1 | 348.67 ns | 22.593 ns | 66.260 ns | 349.87 ns | 25.04 | 5.32 | 6 | 0.0482 | - | - | 304 B |
| DynamoExpandoConversionTest | 1 | 258.71 ns | 15.081 ns | 44.230 ns | 261.49 ns | 19.01 | 3.75 | 5 | 0.0520 | - | - | 328 B |
| DynamoTest | 1 | 158.68 ns | 2.681 ns | 2.377 ns | 159.20 ns | 11.62 | 0.84 | 2 | 0.0458 | - | - | 288 B |
| ExpandoTest | 1 | 197.70 ns | 9.182 ns | 26.345 ns | 195.18 ns | 14.38 | 2.16 | 4 | 0.0370 | - | - | 232 B |
| | | | | | | | | | | | | |
| **AnnonymousTest** | **10** | **72.29 ns** | **0.544 ns** | **0.483 ns** | **72.27 ns** | **1.11** | **0.01** | **2** | **0.0548** | **0.0001** | **-** | **344 B** |
| ClassTest | 10 | 65.19 ns | 0.582 ns | 0.486 ns | 65.33 ns | 1.00 | 0.00 | 1 | 0.0548 | 0.0001 | - | 344 B |
| ConcurrentDictionaryConversionTest | 10 | 1,686.56 ns | 16.096 ns | 14.268 ns | 1,684.78 ns | 25.87 | 0.34 | 4 | 1.4038 | 0.0839 | - | 8,824 B |
| DynamoAnonymousConversionTest | 10 | 3,316.91 ns | 191.865 ns | 531.658 ns | 3,328.66 ns | 53.28 | 3.91 | 6 | 0.4501 | 0.0076 | - | 2,824 B |
| DynamoConversionTest | 10 | 2,632.49 ns | 39.118 ns | 34.678 ns | 2,623.16 ns | 40.32 | 0.66 | 5 | 0.4501 | 0.0076 | - | 2,824 B |
| DynamoExpandoConversionTest | 10 | 2,603.06 ns | 120.591 ns | 351.770 ns | 2,644.84 ns | 43.05 | 1.92 | 5 | 0.4883 | 0.0076 | - | 3,064 B |
| DynamoTest | 10 | 1,541.76 ns | 25.794 ns | 37.808 ns | 1,526.64 ns | 23.61 | 0.68 | 3 | 0.4234 | 0.0057 | - | 2,664 B |
| ExpandoTest | 10 | 1,775.89 ns | 76.786 ns | 225.199 ns | 1,790.17 ns | 31.18 | 3.49 | 4 | 0.3338 | 0.0038 | - | 2,104 B |
| | | | | | | | | | | | | |
| **AnnonymousTest** | **100** | **605.09 ns** | **10.791 ns** | **21.300 ns** | **601.31 ns** | **1.10** | **0.04** | **2** | **0.5131** | **0.0114** | **-** | **3,224 B** |
| ClassTest | 100 | 574.27 ns | 5.159 ns | 4.573 ns | 574.15 ns | 1.00 | 0.00 | 1 | 0.5131 | 0.0114 | - | 3,224 B |
| ConcurrentDictionaryConversionTest | 100 | 17,551.00 ns | 347.005 ns | 371.291 ns | 17,542.41 ns | 30.72 | 0.68 | 4 | 14.0076 | 4.6387 | - | 88,024 B |
| DynamoAnonymousConversionTest | 100 | 33,530.56 ns | 1,072.940 ns | 3,078.466 ns | 33,133.80 ns | 51.86 | 7.51 | 7 | 4.4556 | 0.6104 | - | 28,024 B |
| DynamoConversionTest | 100 | 26,146.21 ns | 483.276 ns | 428.412 ns | 26,176.10 ns | 45.53 | 0.75 | 6 | 4.4556 | 0.6104 | - | 28,024 B |
| DynamoExpandoConversionTest | 100 | 20,406.49 ns | 384.280 ns | 359.456 ns | 20,208.87 ns | 35.58 | 0.84 | 5 | 4.8218 | 0.6714 | - | 30,424 B |
| DynamoTest | 100 | 18,759.62 ns | 1,132.989 ns | 3,340.644 ns | 18,790.80 ns | 27.09 | 2.46 | 4 | 4.2114 | 0.5798 | - | 26,424 B |
| ExpandoTest | 100 | 14,574.47 ns | 225.528 ns | 231.601 ns | 14,548.93 ns | 25.33 | 0.40 | 3 | 3.3112 | 0.4120 | - | 20,824 B |
| | | | | | | | | | | | | |
| **AnnonymousTest** | **1000** | **7,111.92 ns** | **284.431 ns** | **834.187 ns** | **6,641.82 ns** | **1.16** | **0.12** | **2** | **5.0964** | **0.8469** | **-** | **32,024 B** |
| ClassTest | 1000 | 6,169.14 ns | 176.351 ns | 491.595 ns | 5,945.26 ns | 1.00 | 0.00 | 1 | 5.0964 | 0.8469 | - | 32,024 B |
| ConcurrentDictionaryConversionTest | 1000 | 322,879.36 ns | 2,914.804 ns | 2,583.898 ns | 321,833.62 ns | 51.56 | 4.66 | 6 | 140.1367 | 69.8242 | - | 880,024 B |
| DynamoAnonymousConversionTest | 1000 | 261,024.48 ns | 3,536.732 ns | 3,135.221 ns | 259,904.88 ns | 41.67 | 3.65 | 5 | 44.4336 | 17.5781 | - | 280,025 B |
| DynamoConversionTest | 1000 | 259,369.69 ns | 2,550.268 ns | 2,260.746 ns | 259,152.47 ns | 41.41 | 3.70 | 5 | 44.4336 | 17.5781 | - | 280,025 B |
| DynamoExpandoConversionTest | 1000 | 214,635.77 ns | 4,186.073 ns | 3,915.655 ns | 215,303.08 ns | 34.02 | 3.43 | 4 | 48.3398 | 22.4609 | - | 304,024 B |
| DynamoTest | 1000 | 158,912.33 ns | 1,406.588 ns | 1,174.565 ns | 158,690.55 ns | 25.63 | 2.28 | 3 | 41.9922 | 20.2637 | - | 264,025 B |
| ExpandoTest | 1000 | 179,256.24 ns | 9,554.429 ns | 27,104.325 ns | 167,395.51 ns | 28.69 | 3.14 | 3 | 32.9590 | 10.9863 | - | 208,024 B |
| | | | | | | | | | | | | |
| **AnnonymousTest** | **10000** | **116,914.95 ns** | **7,136.561 ns** | **21,042.313 ns** | **114,204.88 ns** | **1.55** | **0.08** | **2** | **50.7813** | **25.3906** | **-** | **320,024 B** |
| ClassTest | 10000 | 81,488.43 ns | 1,222.357 ns | 1,143.393 ns | 81,191.04 ns | 1.00 | 0.00 | 1 | 50.7813 | 25.3906 | - | 320,024 B |
| ConcurrentDictionaryConversionTest | 10000 | 13,037,652.58 ns | 257,695.664 ns | 296,762.710 ns | 13,121,786.72 ns | 159.60 | 4.81 | 8 | 1609.3750 | 703.1250 | 265.6250 | 8,800,026 B |
| DynamoAnonymousConversionTest | 10000 | 3,661,782.37 ns | 59,113.502 ns | 52,402.580 ns | 3,643,004.30 ns | 44.98 | 0.85 | 6 | 445.3125 | 222.6563 | - | 2,800,033 B |
| DynamoConversionTest | 10000 | 3,746,548.16 ns | 67,990.820 ns | 69,821.566 ns | 3,759,405.47 ns | 46.05 | 1.23 | 7 | 445.3125 | 222.6563 | - | 2,800,033 B |
| DynamoExpandoConversionTest | 10000 | 3,467,463.52 ns | 126,720.894 ns | 369,650.796 ns | 3,264,697.07 ns | 49.48 | 3.55 | 5 | 484.3750 | 242.1875 | - | 3,040,024 B |
| DynamoTest | 10000 | 2,504,872.01 ns | 30,818.472 ns | 27,319.773 ns | 2,498,462.89 ns | 30.77 | 0.51 | 4 | 417.9688 | 207.0313 | - | 2,640,033 B |
| ExpandoTest | 10000 | 2,021,588.86 ns | 38,715.368 ns | 43,032.029 ns | 2,023,287.50 ns | 24.80 | 0.68 | 3 | 328.1250 | 164.0625 | - | 2,080,024 B |

----------
**Enum Vs Byte Packing**

| Method | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|------- |---------:|----------:|----------:|----------:|---------:|---------:|---------:|---------:|---------:|--------------:|------:|--------:|-----:|-------:|----------:|
| Byte | 2.354 ns | 0.0768 ns | 0.0681 ns | 0.0182 ns | 2.355 ns | 2.248 ns | 2.308 ns | 2.395 ns | 2.521 ns | 424,765,473.3 | 0.48 | 0.02 | 1 | 0.0051 | 32 B |
| Enum | 4.954 ns | 0.1078 ns | 0.1059 ns | 0.0265 ns | 4.981 ns | 4.758 ns | 4.893 ns | 5.015 ns | 5.106 ns | 201,837,027.8 | 1.00 | 0.00 | 2 | 0.0089 | 56 B |
| UInt | 5.005 ns | 0.2871 ns | 0.8421 ns | 0.0846 ns | 4.669 ns | 4.149 ns | 4.356 ns | 5.662 ns | 7.244 ns | 199,805,587.1 | 1.28 | 0.11 | 2 | 0.0089 | 56 B |

----------
**Field Vs Property Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Allocated |
|---------------- |------- |-------------:|-----------:|-------------:|-----------:|-------------:|-------------:|-------------:|-------------:|-------------:|-------------:|------:|--------:|-----:|----------:|
| **'Field test'** | **100** | **34.76 ns** | **1.230 ns** | **3.608 ns** | **0.363 ns** | **33.54 ns** | **30.99 ns** | **31.46 ns** | **36.80 ns** | **44.56 ns** | **28,771,684.7** | **1.16** | **0.05** | **1** | **-** |
| 'Local test' | 100 | 32.55 ns | 0.304 ns | 0.270 ns | 0.072 ns | 32.46 ns | 32.20 ns | 32.35 ns | 32.71 ns | 33.15 ns | 30,725,451.9 | 1.00 | 0.02 | 1 | - |
| 'Property test' | 100 | 32.41 ns | 0.619 ns | 0.549 ns | 0.147 ns | 32.21 ns | 31.71 ns | 32.06 ns | 32.67 ns | 33.65 ns | 30,855,906.6 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Field test'** | **1000** | **255.89 ns** | **1.370 ns** | **1.144 ns** | **0.317 ns** | **255.69 ns** | **254.24 ns** | **255.58 ns** | **256.13 ns** | **258.66 ns** | **3,907,927.8** | **0.99** | **0.00** | **1** | **-** |
| 'Local test' | 1000 | 258.15 ns | 2.368 ns | 2.215 ns | 0.572 ns | 257.28 ns | 254.62 ns | 256.80 ns | 260.53 ns | 261.16 ns | 3,873,723.0 | 1.00 | 0.01 | 1 | - |
| 'Property test' | 1000 | 257.31 ns | 1.550 ns | 1.210 ns | 0.349 ns | 257.58 ns | 254.81 ns | 256.98 ns | 258.31 ns | 258.66 ns | 3,886,422.7 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Field test'** | **10000** | **2,681.42 ns** | **84.901 ns** | **247.660 ns** | **25.017 ns** | **2,537.49 ns** | **2,475.38 ns** | **2,504.61 ns** | **2,888.25 ns** | **3,336.60 ns** | **372,937.1** | **1.20** | **0.06** | **1** | **-** |
| 'Local test' | 10000 | 2,543.11 ns | 49.573 ns | 46.371 ns | 11.973 ns | 2,530.48 ns | 2,495.92 ns | 2,504.93 ns | 2,572.92 ns | 2,630.95 ns | 393,219.6 | 1.01 | 0.02 | 1 | - |
| 'Property test' | 10000 | 2,521.48 ns | 11.477 ns | 10.735 ns | 2.772 ns | 2,521.31 ns | 2,493.69 ns | 2,517.45 ns | 2,528.24 ns | 2,537.86 ns | 396,592.7 | 1.00 | 0.00 | 1 | - |
| | | | | | | | | | | | | | | | |
| **'Field test'** | **100000** | **26,994.67 ns** | **776.838 ns** | **2,241.354 ns** | **228.757 ns** | **26,027.60 ns** | **24,888.33 ns** | **25,473.48 ns** | **28,765.40 ns** | **33,842.31 ns** | **37,044.4** | **0.88** | **0.09** | **1** | **-** |
| 'Local test' | 100000 | 33,136.43 ns | 886.114 ns | 2,528.132 ns | 260.757 ns | 32,770.84 ns | 28,487.84 ns | 31,291.90 ns | 34,762.79 ns | 40,488.69 ns | 30,178.3 | 1.08 | 0.08 | 3 | - |
| 'Property test' | 100000 | 31,208.59 ns | 620.956 ns | 1,534.850 ns | 180.884 ns | 30,618.19 ns | 28,835.71 ns | 30,118.02 ns | 31,921.12 ns | 34,848.88 ns | 32,042.5 | 1.00 | 0.00 | 2 | - |

----------
**Hash Table Vs Dictionary**

| Method | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Allocated |
|---------------------------- |----------:|---------:|----------:|---------:|----------:|---------:|---------:|----------:|----------:|-------------:|------:|--------:|-----:|-------:|----------:|
| Dictionary<int,string> | 34.76 ns | 0.695 ns | 0.744 ns | 0.175 ns | 34.70 ns | 33.47 ns | 34.27 ns | 35.26 ns | 36.22 ns | 28,768,185.0 | 0.63 | 0.03 | 1 | 0.0344 | 216 B |
| Dictionary<string,string> | 54.32 ns | 1.104 ns | 1.844 ns | 0.307 ns | 54.08 ns | 51.70 ns | 52.90 ns | 55.37 ns | 58.72 ns | 18,408,432.4 | 1.00 | 0.00 | 2 | 0.0343 | 216 B |
| 'Hashtable (int,string)' | 55.84 ns | 2.008 ns | 5.889 ns | 0.592 ns | 56.38 ns | 48.57 ns | 50.06 ns | 59.81 ns | 72.13 ns | 17,908,300.9 | 1.12 | 0.07 | 2 | 0.0344 | 216 B |
| 'Hashtable (string,string)' | 56.30 ns | 3.156 ns | 9.307 ns | 0.931 ns | 57.15 ns | 45.87 ns | 46.97 ns | 62.40 ns | 85.50 ns | 17,761,621.5 | 1.20 | 0.13 | 2 | 0.0268 | 168 B |
| StringDictionary | 116.01 ns | 6.278 ns | 18.510 ns | 1.851 ns | 107.23 ns | 95.11 ns | 99.25 ns | 131.71 ns | 168.59 ns | 8,620,151.0 | 2.52 | 0.18 | 3 | 0.0408 | 256 B |

----------
**IEnumerable Conversion**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |------- |---------------:|-------------:|-------------:|------------:|---------------:|---------------:|---------------:|---------------:|---------------:|------------:|------:|--------:|-----:|---------:|---------:|---------:|------------:|
| **Array** | **100** | **1,690.3 ns** | **83.16 ns** | **234.56 ns** | **24.45 ns** | **1,602.6 ns** | **1,456.6 ns** | **1,511.8 ns** | **1,780.7 ns** | **2,415.9 ns** | **591,623.7** | **2.12** | **0.21** | **7** | **0.2785** | **-** | **-** | **1,768 B** |
| 'Array Copy' | 100 | 604.4 ns | 29.21 ns | 86.13 ns | 8.61 ns | 551.8 ns | 514.8 ns | 529.5 ns | 695.7 ns | 793.9 ns | 1,654,570.7 | 0.75 | 0.04 | 2 | 0.2251 | - | - | 1,416 B |
| 'Array for loop' | 100 | 788.5 ns | 15.72 ns | 31.02 ns | 4.48 ns | 786.5 ns | 743.1 ns | 761.0 ns | 809.4 ns | 864.1 ns | 1,268,168.2 | 0.84 | 0.04 | 4 | 0.2518 | - | - | 1,584 B |
| IEnumerable | 100 | 936.3 ns | 14.60 ns | 14.34 ns | 3.59 ns | 934.1 ns | 910.1 ns | 926.8 ns | 945.1 ns | 965.6 ns | 1,068,087.2 | 1.00 | 0.00 | 5 | 0.1316 | - | - | 832 B |
| List | 100 | 1,430.4 ns | 69.78 ns | 205.74 ns | 20.57 ns | 1,511.2 ns | 1,176.9 ns | 1,203.3 ns | 1,585.5 ns | 1,957.6 ns | 699,099.1 | 1.75 | 0.11 | 6 | 0.3204 | - | - | 2,016 B |
| 'List CopyTo' | 100 | 558.1 ns | 31.96 ns | 94.23 ns | 9.42 ns | 501.3 ns | 466.1 ns | 476.2 ns | 645.6 ns | 795.9 ns | 1,791,751.0 | 0.59 | 0.10 | 1 | 0.2651 | - | - | 1,664 B |
| 'List for loop' | 100 | 720.7 ns | 46.67 ns | 136.88 ns | 13.76 ns | 721.4 ns | 556.6 ns | 593.8 ns | 823.4 ns | 1,052.1 ns | 1,387,463.7 | 0.83 | 0.13 | 3 | 0.2918 | - | - | 1,832 B |
| | | | | | | | | | | | | | | | | | | |
| **Array** | **1000** | **8,280.9 ns** | **116.80 ns** | **103.54 ns** | **27.67 ns** | **8,266.7 ns** | **8,141.1 ns** | **8,197.6 ns** | **8,325.5 ns** | **8,486.2 ns** | **120,759.6** | **1.39** | **0.15** | **5** | **1.8921** | **0.0153** | **-** | **11,888 B** |
| 'Array Copy' | 1000 | 3,503.1 ns | 68.78 ns | 64.34 ns | 16.61 ns | 3,484.8 ns | 3,439.2 ns | 3,449.2 ns | 3,551.5 ns | 3,661.4 ns | 285,458.6 | 0.58 | 0.08 | 1 | 1.8272 | 0.0153 | - | 11,480 B |
| 'Array for loop' | 1000 | 4,033.1 ns | 62.83 ns | 55.70 ns | 14.89 ns | 4,019.9 ns | 3,969.3 ns | 4,001.0 ns | 4,061.7 ns | 4,149.7 ns | 247,950.6 | 0.68 | 0.08 | 2 | 1.8616 | 0.0153 | - | 11,704 B |
| IEnumerable | 1000 | 6,441.4 ns | 363.20 ns | 1,070.90 ns | 107.09 ns | 5,833.2 ns | 5,340.0 ns | 5,613.8 ns | 7,242.5 ns | 9,074.2 ns | 155,246.6 | 1.00 | 0.00 | 4 | 0.7095 | - | - | 4,488 B |
| List | 1000 | 8,945.6 ns | 172.11 ns | 184.15 ns | 43.41 ns | 8,890.2 ns | 8,708.7 ns | 8,800.3 ns | 9,087.6 ns | 9,305.9 ns | 111,786.5 | 1.41 | 0.24 | 6 | 2.0447 | 0.0153 | - | 12,912 B |
| 'List CopyTo' | 1000 | 4,313.8 ns | 80.13 ns | 106.97 ns | 21.39 ns | 4,302.0 ns | 4,142.9 ns | 4,246.5 ns | 4,395.4 ns | 4,532.2 ns | 231,813.7 | 0.63 | 0.13 | 3 | 1.9913 | 0.0267 | - | 12,504 B |
| 'List for loop' | 1000 | 4,365.5 ns | 72.78 ns | 117.53 ns | 20.16 ns | 4,327.6 ns | 4,235.4 ns | 4,289.7 ns | 4,400.3 ns | 4,684.0 ns | 229,067.0 | 0.62 | 0.12 | 3 | 2.0218 | 0.0305 | - | 12,728 B |
| | | | | | | | | | | | | | | | | | | |
| **Array** | **10000** | **79,485.7 ns** | **845.31 ns** | **790.70 ns** | **204.16 ns** | **79,203.0 ns** | **78,616.5 ns** | **78,884.4 ns** | **80,008.7 ns** | **81,318.0 ns** | **12,580.9** | **1.47** | **0.03** | **6** | **20.5078** | **1.9531** | **-** | **129,416 B** |
| 'Array Copy' | 10000 | 31,167.0 ns | 447.38 ns | 396.59 ns | 105.99 ns | 31,234.5 ns | 30,351.8 ns | 30,872.2 ns | 31,402.0 ns | 31,881.7 ns | 32,085.3 | 0.57 | 0.01 | 2 | 16.4185 | 1.3428 | - | 103,472 B |
| 'Array for loop' | 10000 | 41,787.6 ns | 1,652.43 ns | 4,846.28 ns | 487.07 ns | 39,203.4 ns | 37,640.4 ns | 38,157.9 ns | 46,147.7 ns | 54,862.7 ns | 23,930.5 | 0.80 | 0.10 | 3 | 20.5078 | 2.2583 | - | 129,232 B |
| IEnumerable | 10000 | 54,241.4 ns | 1,000.57 ns | 935.94 ns | 241.66 ns | 53,773.3 ns | 53,066.1 ns | 53,543.1 ns | 54,851.8 ns | 56,347.2 ns | 18,436.1 | 1.00 | 0.00 | 5 | 10.4370 | 1.2817 | - | 66,024 B |
| List | 10000 | 88,270.6 ns | 3,274.05 ns | 9,446.37 ns | 964.12 ns | 83,533.6 ns | 80,660.2 ns | 81,805.0 ns | 91,047.5 ns | 113,851.8 ns | 11,328.8 | 1.55 | 0.13 | 7 | 20.8740 | 2.5635 | - | 131,864 B |
| 'List CopyTo' | 10000 | 30,190.5 ns | 359.11 ns | 299.87 ns | 83.17 ns | 30,193.9 ns | 29,787.1 ns | 29,955.9 ns | 30,427.4 ns | 30,732.9 ns | 33,123.0 | 0.56 | 0.01 | 1 | 16.7847 | 2.0752 | - | 105,920 B |
| 'List for loop' | 10000 | 43,034.9 ns | 1,705.39 ns | 5,028.37 ns | 502.84 ns | 40,686.0 ns | 38,076.5 ns | 39,319.3 ns | 47,165.1 ns | 57,846.7 ns | 23,236.9 | 0.89 | 0.10 | 4 | 20.9351 | 3.4790 | - | 131,680 B |
| | | | | | | | | | | | | | | | | | | |
| **Array** | **100000** | **965,729.2 ns** | **18,623.40 ns** | **20,699.86 ns** | **4,748.87 ns** | **960,648.8 ns** | **934,459.6 ns** | **952,481.4 ns** | **977,953.7 ns** | **1,006,883.8 ns** | **1,035.5** | **1.23** | **0.08** | **6** | **298.8281** | **298.8281** | **298.8281** | **1,225,568 B** |
| 'Array Copy' | 100000 | 452,540.5 ns | 14,378.21 ns | 41,941.91 ns | 4,236.77 ns | 431,112.0 ns | 416,530.0 ns | 426,025.8 ns | 467,278.0 ns | 556,253.4 ns | 2,209.7 | 0.66 | 0.05 | 1 | 299.8047 | 299.8047 | 299.8047 | 1,100,800 B |
| 'Array for loop' | 100000 | 505,668.1 ns | 7,568.31 ns | 7,079.40 ns | 1,827.89 ns | 504,960.3 ns | 495,949.2 ns | 500,123.4 ns | 508,026.2 ns | 518,372.9 ns | 1,977.6 | 0.64 | 0.04 | 3 | 299.8047 | 299.8047 | 299.8047 | 1,225,384 B |
| IEnumerable | 100000 | 690,524.8 ns | 26,817.87 ns | 79,073.10 ns | 7,907.31 ns | 656,108.7 ns | 605,796.3 ns | 623,662.7 ns | 750,376.7 ns | 927,361.2 ns | 1,448.2 | 1.00 | 0.00 | 5 | 124.0234 | 124.0234 | 124.0234 | 524,848 B |
| List | 100000 | 1,049,636.6 ns | 20,207.57 ns | 26,976.53 ns | 5,395.31 ns | 1,047,216.0 ns | 1,011,385.5 ns | 1,026,488.3 ns | 1,066,040.2 ns | 1,109,960.9 ns | 952.7 | 1.34 | 0.07 | 7 | 398.4375 | 398.4375 | 398.4375 | 1,573,824 B |
| 'List CopyTo' | 100000 | 453,988.7 ns | 20,837.31 ns | 61,439.28 ns | 6,143.93 ns | 420,574.7 ns | 401,410.0 ns | 408,675.7 ns | 501,326.0 ns | 627,540.3 ns | 2,202.7 | 0.66 | 0.07 | 2 | 389.1602 | 389.1602 | 389.1602 | 1,449,072 B |
| 'List for loop' | 100000 | 605,808.5 ns | 27,083.82 ns | 79,004.78 ns | 7,980.69 ns | 600,767.8 ns | 479,177.8 ns | 546,176.1 ns | 646,794.2 ns | 800,673.5 ns | 1,650.7 | 0.88 | 0.11 | 4 | 387.6953 | 387.6953 | 387.6953 | 1,573,635 B |

----------
**IEnumerable Tests**

| Method | Count | Mean | Error | StdDev | StdErr | Median | Min | Q1 | Q3 | Max | Op/s | Ratio | RatioSD | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|--------------------- |------- |--------------:|--------------:|--------------:|-------------:|--------------:|--------------:|--------------:|--------------:|--------------:|-------------:|------:|--------:|-----:|--------:|--------:|--------:|----------:|
| **'ArrayList test'** | **100** | **505.33 ns** | **7.388 ns** | **6.911 ns** | **1.784 ns** | **503.84 ns** | **496.32 ns** | **500.53 ns** | **508.86 ns** | **521.18 ns** | **1,978,905.9** | **2.56** | **0.32** | **5** | **0.0076** | **-** | **-** | **48 B** |
| 'Array test' | 100 | 32.00 ns | 0.439 ns | 0.411 ns | 0.106 ns | 31.86 ns | 31.43 ns | 31.69 ns | 32.30 ns | 32.71 ns | 31,247,541.6 | 0.16 | 0.02 | 1 | - | - | - | - |
| 'ConcurrentBag test' | 100 | 463.95 ns | 3.536 ns | 3.307 ns | 0.854 ns | 463.65 ns | 458.30 ns | 462.30 ns | 467.10 ns | 468.97 ns | 2,155,402.2 | 2.35 | 0.28 | 4 | 0.0725 | - | - | 456 B |
| 'HashSet test' | 100 | 203.08 ns | 3.552 ns | 3.323 ns | 0.858 ns | 202.83 ns | 198.94 ns | 200.24 ns | 205.39 ns | 208.98 ns | 4,924,120.5 | 1.03 | 0.13 | 3 | - |