Performance Comparison: Containers
This file is auto-generated
All measurments were taken on Intel(R) Core(TM) i9-9900KS CPU @ 4.00GHz with 16 logical cores.
Unity Editor version: 2022.3.6f1
To regenerate this file locally use: DOTS -> Unity.Collections -> Generate *** menu.
Table of Contents
Benchmark Results
The Median of 10 sample sets is compared against the baseline on the far right side of the table.
Multithreaded benchmarks divide the processing amongst the specified number of workers.
5 extra sample sets are run as warmup.
Legend
(S)
= Safety Enabled
(B)
= Burst Compiled with Safety Disabled
(S+B)
= Burst Compiled with Safety Enabled
(BCL)
= Base Class Library implementation (such as provided by Mono or .NET)
italic
results are for benchmarking comparison only; these are not included in standard Performance Framework tests
HashMap
Functionality | NativeHashMap (S) | NativeHashMap (S+B) | NativeHashMap (B) | UnsafeHashMap (S) | UnsafeHashMap (S+B) | UnsafeHashMap (B) | Dictionary (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(0) ยน |
0.342ms (0.4x) ๐ | 0.111ms (1.1x) | 0.133ms (0.9x) | 0.221ms (0.5x) | 0.105ms (1.1x) ๐ข | 0.106ms (1.1x) | 0.120ms (1.0x) |
IsEmpty_x_100k(100) ยน |
0.342ms (0.4x) ๐ | 0.112ms (1.1x) | 0.133ms (0.9x) | 0.221ms (0.5x) | 0.106ms (1.1x) | 0.106ms (1.1x) ๐ข | 0.120ms (1.0x) |
Count_x_100k(0) ยน |
0.261ms (0.5x) ๐ | 0.142ms (0.8x) | 0.108ms (1.1x) ๐ข | 0.120ms (1.0x) | 0.111ms (1.1x) | 0.111ms (1.1x) | 0.120ms (1.0x) |
Count_x_100k(100) ยน |
0.261ms (0.5x) ๐ | 0.142ms (0.8x) | 0.111ms (1.1x) ๐ข | 0.120ms (1.0x) | 0.111ms (1.1x) | 0.111ms (1.1x) | 0.120ms (1.0x) |
ToNativeArrayKeys(10000) |
0.151ms (0.1x) | 0.126ms (0.1x) | 0.092ms (0.2x) | 0.159ms (0.1x) ๐ | 0.125ms (0.1x) | 0.083ms (0.2x) | 0.018ms (1.0x) ๐ข |
ToNativeArrayKeys(100000) |
1.659ms (0.1x) ๐ | 1.214ms (0.1x) | 0.918ms (0.2x) | 1.610ms (0.1x) | 1.205ms (0.1x) | 0.908ms (0.2x) | 0.174ms (1.0x) ๐ข |
ToNativeArrayKeys(1000000) |
21.689ms (0.1x) ๐ | 13.624ms (0.2x) | 10.721ms (0.2x) | 19.842ms (0.1x) | 13.505ms (0.2x) | 10.569ms (0.2x) | 2.059ms (1.0x) ๐ข |
ToNativeArrayValues(10000) |
0.160ms (0.1x) | 0.118ms (0.2x) | 0.086ms (0.2x) | 0.161ms (0.1x) ๐ | 0.125ms (0.1x) | 0.084ms (0.2x) | 0.018ms (1.0x) ๐ข |
ToNativeArrayValues(100000) |
1.702ms (0.1x) | 1.192ms (0.1x) | 0.935ms (0.2x) | 1.721ms (0.1x) ๐ | 1.196ms (0.1x) | 0.919ms (0.2x) | 0.173ms (1.0x) ๐ข |
ToNativeArrayValues(1000000) |
20.402ms (0.1x) | 13.609ms (0.1x) | 11.017ms (0.2x) | 20.556ms (0.1x) ๐ | 13.773ms (0.1x) | 10.869ms (0.2x) | 2.018ms (1.0x) ๐ข |
Insert(10000) |
0.135ms (1.3x) | 0.070ms (2.5x) | 0.061ms (2.9x) | 0.120ms (1.5x) | 0.060ms (2.9x) ๐ข | 0.061ms (2.9x) | 0.175ms (1.0x) ๐ |
Insert(100000) |
1.723ms (1.3x) | 0.996ms (2.2x) | 0.914ms (2.4x) | 1.565ms (1.4x) | 0.909ms (2.4x) | 0.889ms (2.5x) ๐ข | 2.209ms (1.0x) ๐ |
Insert(1000000) |
33.017ms (0.9x) | 21.056ms (1.4x) | 19.847ms (1.5x) | 50.228ms (0.6x) ๐ | 19.654ms (1.5x) | 19.613ms (1.5x) ๐ข | 29.738ms (1.0x) |
AddGrow(4, 1048576) ยณ |
137.459ms (0.4x) ๐ | 81.364ms (0.6x) | 77.039ms (0.6x) | 133.603ms (0.4x) | 78.458ms (0.6x) | 76.533ms (0.6x) | 49.222ms (1.0x) ๐ข |
AddGrow(65536, 1048576) ยณ |
140.883ms (0.4x) ๐ | 82.611ms (0.6x) | 77.670ms (0.6x) | 134.717ms (0.4x) | 79.913ms (0.6x) | 77.316ms (0.6x) | 50.215ms (1.0x) ๐ข |
Contains(10000) |
0.089ms (2.1x) | 0.036ms (5.1x) | 0.027ms (6.8x) | 0.101ms (1.9x) | 0.029ms (6.4x) | 0.025ms (7.4x) ๐ข | 0.188ms (1.0x) ๐ |
Contains(100000) |
1.696ms (1.7x) | 0.694ms (4.1x) | 0.508ms (5.6x) | 1.945ms (1.5x) | 0.538ms (5.3x) | 0.482ms (5.9x) ๐ข | 2.843ms (1.0x) ๐ |
Contains(1000000) |
42.805ms (1.5x) | 17.135ms (3.6x) | 12.633ms (4.9x) | 43.284ms (1.4x) | 12.700ms (4.9x) | 11.703ms (5.3x) ๐ข | 62.072ms (1.0x) ๐ |
IndexedRead(10000) |
0.109ms (1.7x) | 0.028ms (6.7x) | 0.032ms (5.9x) | 0.122ms (1.6x) | 0.027ms (7.1x) | 0.026ms (7.1x) ๐ข | 0.189ms (1.0x) ๐ |
IndexedRead(100000) |
1.983ms (1.4x) | 0.592ms (4.7x) | 0.614ms (4.5x) | 2.125ms (1.3x) | 0.543ms (5.1x) ๐ข | 0.545ms (5.1x) | 2.791ms (1.0x) ๐ |
IndexedRead(1000000) |
57.739ms (1.1x) | 16.881ms (3.7x) | 16.937ms (3.7x) | 57.860ms (1.1x) | 14.918ms (4.1x) ๐ข | 15.113ms (4.1x) | 61.850ms (1.0x) ๐ |
IndexedWrite(10000) |
0.103ms (2.0x) | 0.080ms (2.6x) | 0.040ms (5.2x) | 0.084ms (2.5x) | 0.039ms (5.3x) | 0.036ms (5.8x) ๐ข | 0.209ms (1.0x) ๐ |
IndexedWrite(100000) |
1.890ms (1.6x) | 1.269ms (2.4x) | 0.755ms (4.1x) | 1.473ms (2.1x) | 0.759ms (4.1x) | 0.707ms (4.3x) ๐ข | 3.074ms (1.0x) ๐ |
IndexedWrite(1000000) |
73.370ms (1.0x) | 69.054ms (1.1x) | 65.695ms (1.1x) ๐ข | 73.500ms (1.0x) | 65.870ms (1.1x) | 66.574ms (1.1x) | 73.729ms (1.0x) ๐ |
TryGetValue(10000) |
0.105ms (1.8x) | 0.033ms (5.7x) | 0.032ms (5.9x) | 0.120ms (1.6x) | 0.029ms (6.6x) ๐ข | 0.029ms (6.6x) ๐ข | 0.191ms (1.0x) ๐ |
TryGetValue(100000) |
1.943ms (1.4x) | 0.645ms (4.4x) | 0.637ms (4.4x) | 2.102ms (1.3x) | 0.574ms (4.9x) | 0.557ms (5.1x) ๐ข | 2.816ms (1.0x) ๐ |
TryGetValue(1000000) |
55.056ms (1.1x) | 18.084ms (3.4x) | 17.878ms (3.5x) | 59.138ms (1.0x) | 15.889ms (3.9x) | 15.692ms (4.0x) ๐ข | 62.067ms (1.0x) ๐ |
Remove(10000) |
0.110ms (1.4x) | 0.044ms (3.6x) | 0.035ms (4.5x) | 0.094ms (1.7x) | 0.029ms (5.4x) | 0.028ms (5.6x) ๐ข | 0.158ms (1.0x) ๐ |
Remove(100000) |
1.889ms (1.3x) | 0.844ms (2.8x) | 0.661ms (3.6x) | 3.654ms (0.7x) ๐ | 0.566ms (4.2x) | 0.547ms (4.4x) ๐ข | 2.395ms (1.0x) |
Remove(1000000) |
62.623ms (1.0x) | 56.372ms (1.1x) | 53.877ms (1.2x) ๐ข | 61.104ms (1.0x) | 54.841ms (1.1x) | 55.805ms (1.1x) | 62.915ms (1.0x) ๐ |
Foreach(10000) |
0.150ms (0.3x) ๐ | 0.083ms (0.5x) | 0.077ms (0.5x) | 0.141ms (0.3x) | 0.077ms (0.5x) | 0.079ms (0.5x) | 0.041ms (1.0x) ๐ข |
Foreach(100000) |
1.984ms (0.2x) ๐ | 0.924ms (0.4x) | 0.866ms (0.5x) | 1.869ms (0.2x) | 0.865ms (0.5x) | 0.885ms (0.5x) | 0.412ms (1.0x) ๐ข |
Foreach(1000000) |
27.605ms (0.2x) ๐ | 10.947ms (0.4x) | 10.421ms (0.4x) | 26.351ms (0.2x) | 10.457ms (0.4x) | 10.619ms (0.4x) | 4.359ms (1.0x) ๐ข |
ยน Optimizations were disabled to perform this benchmark
ยณ AddGrow(capacity, growTo) -- Incrementally grows from capacity
until reaching size of growTo
HashSet
Functionality | NativeHashSet (S) | NativeHashSet (S+B) | NativeHashSet (B) | UnsafeHashSet (S) | UnsafeHashSet (S+B) | UnsafeHashSet (B) | HashSet (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(0) ยน |
0.342ms (0.4x) ๐ | 0.112ms (1.3x) | 0.133ms โ(1.1x) | 0.221ms (0.6x) | 0.106ms (1.3x) ๐ข | 0.106ms โ(1.3x) | 0.140ms (1.0x) |
IsEmpty_x_100k(100) ยน |
0.342ms (0.4x) ๐ | 0.112ms (1.3x) | 0.133ms โ(1.1x) | 0.221ms (0.6x) | 0.106ms (1.3x) | 0.106ms โ(1.3x) ๐ข | 0.140ms (1.0x) |
Count_x_100k(0) ยน |
0.261ms (0.5x) ๐ | 0.143ms (1.0x) | 0.111ms โ(1.3x) | 0.100ms (1.4x) ๐ข | 0.111ms (1.3x) | 0.108ms โ(1.3x) | 0.140ms (1.0x) |
Count_x_100k(100) ยน |
0.261ms (0.5x) ๐ | 0.142ms (1.0x) | 0.111ms โ(1.3x) | 0.100ms (1.4x) ๐ข | 0.111ms (1.3x) | 0.111ms โ(1.3x) | 0.140ms (1.0x) |
ToNativeArray(10000) |
0.043ms (0.4x) ๐ | 0.015ms (1.2x) | 0.009ms โ(1.9x) | 0.043ms (0.4x) | 0.015ms (1.2x) | 0.009ms โ(1.9x) ๐ข | 0.018ms (1.0x) |
ToNativeArray(100000) |
0.475ms (0.4x) | 0.144ms (1.2x) | 0.085ms โ(2.1x) ๐ข | 0.485ms (0.4x) ๐ | 0.144ms (1.2x) | 0.085ms โ(2.1x) ๐ข | 0.176ms (1.0x) |
ToNativeArray(1000000) |
4.935ms (0.4x) | 1.591ms (1.2x) | 0.989ms โ(1.9x) ๐ข | 5.378ms (0.4x) ๐ | 1.586ms (1.2x) | 0.997ms โ(1.9x) | 1.927ms (1.0x) |
Insert(10000) |
0.093ms (1.1x) | 0.044ms (2.3x) | 0.040ms โ(2.6x) | 0.078ms (1.3x) | 0.039ms (2.6x) | 0.035ms โ(2.9x) ๐ข | 0.103ms (1.0x) ๐ |
Insert(100000) |
0.937ms (1.1x) | 0.441ms (2.3x) | 0.403ms โ(2.6x) | 0.785ms (1.3x) | 0.390ms (2.6x) | 0.351ms โ(2.9x) ๐ข | 1.029ms (1.0x) ๐ |
Insert(1000000) |
12.275ms (0.8x) ๐ | 7.030ms (1.5x) | 6.650ms โ(1.6x) ๐ข | 10.495ms (1.0x) | 6.902ms (1.5x) | 6.747ms โ(1.5x) | 10.384ms (1.0x) |
AddGrow(4, 1048576) ยณ |
76.515ms (0.3x) ๐ | 35.430ms (0.6x) | 33.171ms โ(0.6x) | 75.704ms (0.3x) | 32.776ms (0.6x) | 30.928ms โ(0.7x) | 20.387ms (1.0x) ๐ข |
AddGrow(65536, 1048576) ยณ |
75.192ms (0.3x) ๐ | 34.149ms (0.6x) | 32.652ms โ(0.6x) | 74.248ms (0.3x) | 34.092ms (0.6x) | 32.440ms โ(0.6x) | 19.978ms (1.0x) ๐ข |
Contains(10000) |
0.061ms (1.8x) | 0.017ms (6.7x) | 0.010ms (11.5x) | 0.072ms (1.6x) | 0.013ms (8.9x) | 0.009ms (12.5x) ๐ข | 0.113ms (1.0x) ๐ |
Contains(100000) |
0.949ms (1.7x) | 0.311ms (5.2x) | 0.199ms โ(8.1x) | 1.104ms (1.5x) | 0.207ms (7.8x) | 0.180ms โ(8.9x) ๐ข | 1.610ms (1.0x) ๐ |
Contains(1000000) |
11.436ms (1.7x) | 3.877ms (4.9x) | 2.576ms โ(7.4x) | 13.252ms (1.4x) | 2.653ms (7.2x) | 2.373ms โ(8.0x) ๐ข | 19.089ms (1.0x) ๐ |
Remove(10000) |
0.111ms (1.7x) | 0.054ms (3.4x) | 0.044ms โ(4.3x) | 0.101ms (1.8x) | 0.036ms (5.2x) ๐ข | 0.040ms โ(4.6x) | 0.186ms (1.0x) ๐ |
Remove(100000) |
1.327ms (1.6x) | 0.645ms (3.2x) | 0.531ms โ(3.9x) | 1.218ms (1.7x) | 0.438ms (4.7x) ๐ข | 0.477ms โ(4.4x) | 2.076ms (1.0x) ๐ |
Remove(1000000) |
15.132ms (1.5x) | 7.264ms (3.2x) | 5.953ms โ(3.9x) | 26.197ms (0.9x) ๐ | 4.917ms (4.7x) ๐ข | 5.268ms โ(4.4x) | 23.150ms (1.0x) |
Foreach(10000) |
0.081ms (0.4x) ๐ | 0.029ms (1.2x) | 0.016ms โ(2.3x) ๐ข | 0.054ms (0.7x) | 0.017ms (2.2x) | 0.017ms โ(2.2x) | 0.036ms (1.0x) |
Foreach(100000) |
0.766ms (0.5x) ๐ | 0.241ms (1.5x) | 0.135ms โ(2.6x) ๐ข | 0.505ms (0.7x) | 0.145ms (2.5x) | 0.145ms โ(2.5x) | 0.356ms (1.0x) |
Foreach(1000000) |
7.540ms (0.5x) ๐ | 2.280ms (1.6x) | 1.431ms โ(2.5x) ๐ข | 4.906ms (0.7x) | 1.524ms (2.4x) | 1.516ms โ(2.4x) | 3.638ms (1.0x) |
UnionWith(10000) |
0.226ms (1.1x) | 0.144ms (1.8x) | 0.128ms โ(2.0x) | 0.191ms (1.3x) | 0.119ms (2.1x) | 0.116ms โ(2.2x) ๐ข | 0.254ms (1.0x) ๐ |
UnionWith(100000) |
2.545ms (1.4x) | 1.664ms (2.1x) | 1.486ms โ(2.3x) | 2.140ms (1.6x) | 1.370ms (2.5x) | 1.349ms โ(2.6x) ๐ข | 3.441ms (1.0x) ๐ |
UnionWith(1000000) |
80.802ms (0.7x) ๐ | 43.823ms (1.4x) | 39.187ms โ(1.5x) ๐ข | 74.811ms (0.8x) | 45.527ms (1.3x) | 40.115ms โ(1.5x) | 59.785ms (1.0x) |
IntersectWith(10000) |
0.246ms (1.1x) | 0.142ms (1.9x) | 0.123ms โ(2.2x) | 0.201ms (1.3x) | 0.107ms (2.5x) | 0.105ms โ(2.6x) ๐ข | 0.270ms (1.0x) ๐ |
IntersectWith(100000) |
2.705ms (1.3x) | 1.546ms (2.2x) | 1.405ms โ(2.4x) | 2.218ms (1.5x) | 1.189ms (2.9x) ๐ข | 1.231ms โ(2.8x) | 3.436ms (1.0x) ๐ |
IntersectWith(1000000) |
33.228ms (2.0x) | 19.026ms (3.4x) | 17.066ms โ(3.8x) | 27.030ms (2.4x) | 14.937ms (4.4x) ๐ข | 15.096ms โ(4.3x) | 65.055ms (1.0x) ๐ |
ExceptWith(10000) |
0.212ms (1.0x) | 0.125ms (1.7x) | 0.107ms โ(2.0x) | 0.175ms (1.3x) | 0.094ms (2.3x) | 0.093ms โ(2.4x) ๐ข | 0.218ms (1.0x) ๐ |
ExceptWith(100000) |
2.374ms (1.2x) | 1.419ms (2.0x) | 1.257ms โ(2.2x) | 1.992ms (1.4x) | 1.109ms (2.5x) ๐ข | 1.110ms โ(2.5x) | 2.799ms (1.0x) ๐ |
ExceptWith(1000000) |
35.627ms (1.1x) | 19.482ms (2.0x) | 17.001ms โ(2.3x) | 29.688ms (1.3x) | 15.493ms (2.6x) ๐ข | 15.620ms โ(2.5x) | 39.627ms (1.0x) ๐ |
ยน Optimizations were disabled to perform this benchmark
ยณ AddGrow(capacity, growTo) -- Incrementally grows from capacity
until reaching size of growTo
List
Functionality | NativeList (S) | NativeList (S+B) | NativeList (B) | UnsafeList (S) | UnsafeList (S+B) | UnsafeList (B) | List (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(0) ยน |
0.154ms (0.9x) | 0.121ms (1.2x) | 0.111ms โ(1.3x) | 0.161ms (0.9x) ๐ | 0.106ms โ(1.3x) ๐ข | 0.106ms โ(1.3x) ๐ข | 0.140ms (1.0x) |
IsEmpty_x_100k(100) ยน |
0.154ms (0.9x) | 0.121ms (1.2x) | 0.111ms โ(1.3x) | 0.161ms (0.9x) ๐ | 0.106ms โ(1.3x) | 0.106ms โ(1.3x) ๐ข | 0.140ms (1.0x) |
Count_x_100k(0) ยน |
0.120ms (1.0x) ๐ | 0.111ms (1.1x) | 0.111ms โ(1.1x) | 0.020ms (6.0x) ๐ข | 0.081ms โ(1.5x) | 0.108ms โ(1.1x) | 0.120ms (1.0x) |
Count_x_100k(100) ยน |
0.120ms (1.0x) ๐ | 0.111ms (1.1x) | 0.111ms โ(1.1x) | 0.020ms (6.0x) ๐ข | 0.081ms โ(1.5x) | 0.108ms โ(1.1x) | 0.120ms (1.0x) ๐ |
ToNativeArray(10000) |
0.002ms (1.4x) | 0.002ms (1.8x) | 0.002ms โ(1.9x) ๐ข | --- | --- | --- | 0.003ms (1.0x) ๐ |
ToNativeArray(100000) |
0.088ms (0.3x) ๐ | 0.015ms (1.9x) | 0.015ms โ(2.0x) ๐ข | --- | --- | --- | 0.029ms (1.0x) |
ToNativeArray(1000000) |
0.906ms (0.3x) ๐ | 0.143ms (2.1x) ๐ข | 0.148ms โ(2.1x) | --- | --- | --- | 0.306ms (1.0x) |
Add(10000) |
0.040ms (0.4x) ๐ | 0.014ms (1.0x) | 0.016ms โ(0.9x) | 0.017ms (0.9x) | 0.007ms โ(2.2x) ๐ข | 0.007ms โ(2.2x) | 0.014ms (1.0x) |
Add(100000) |
0.400ms (0.4x) ๐ | 0.140ms (1.0x) | 0.155ms โ(0.9x) | 0.166ms (0.9x) | 0.061ms โ(2.3x) ๐ข | 0.061ms โ(2.3x) ๐ข | 0.144ms (1.0x) |
Add(1000000) |
4.000ms (0.4x) ๐ | 1.399ms (1.0x) | 1.548ms โ(0.9x) | 1.654ms (0.9x) | 0.605ms โ(2.4x) ๐ข | 0.608ms โ(2.4x) | 1.436ms (1.0x) |
AddGrow(4, 1048576) ยณ |
4.647ms (0.5x) ๐ | 1.886ms (1.3x) | 1.759ms โ(1.4x) | 2.141ms (1.1x) | 1.026ms โ(2.3x) ๐ข | 1.033ms โ(2.3x) | 2.402ms (1.0x) |
AddGrow(65536, 1048576) ยณ |
4.604ms (0.5x) ๐ | 1.865ms (1.3x) | 1.773ms โ(1.3x) | 2.122ms (1.1x) | 1.083ms โ(2.2x) | 1.010ms โ(2.4x) ๐ข | 2.381ms (1.0x) |
Contains(1000) |
0.371ms (1.1x) | 0.086ms (4.6x) | 0.084ms โ(4.7x) | 0.370ms (1.1x) | 0.148ms โ(2.7x) | 0.084ms โ(4.7x) ๐ข | 0.394ms (1.0x) ๐ |
Contains(10000) |
37.241ms (1.2x) | 7.565ms (6.0x) | 7.548ms โ(6.0x) | 37.203ms (1.2x) | 7.541ms โ(6.0x) ๐ข | 7.544ms โ(6.0x) | 45.509ms (1.0x) ๐ |
IndexedRead(10000) |
0.037ms (0.6x) ๐ | 0.009ms (2.7x) | 0.005ms โ(4.8x) | 0.022ms (1.0x) | 0.005ms โ(5.0x) ๐ข | 0.005ms โ(4.9x) | 0.023ms (1.0x) |
IndexedRead(100000) |
0.474ms (0.7x) ๐ | 0.090ms (3.6x) | 0.068ms โ(4.8x) | 0.268ms (1.2x) | 0.077ms โ(4.2x) | 0.068ms โ(4.8x) ๐ข | 0.328ms (1.0x) |
IndexedRead(1000000) |
5.416ms (0.7x) ๐ | 1.487ms (2.6x) | 1.341ms โ(2.9x) ๐ข | 3.197ms (1.2x) | 1.395ms โ(2.8x) | 1.357ms โ(2.9x) | 3.897ms (1.0x) |
IndexedWrite(10000) |
0.028ms (1.0x) | 0.011ms (2.6x) | 0.007ms โ(4.4x) | 0.018ms (1.6x) | 0.006ms โ(4.6x) ๐ข | 0.010ms โ(3.0x) | 0.029ms (1.0x) ๐ |
IndexedWrite(100000) |
0.311ms (1.1x) | 0.125ms (2.7x) ๐ข | 0.135ms โ(2.5x) | 0.220ms (1.5x) | 0.136ms โ(2.4x) | 0.132ms โ(2.5x) | 0.331ms (1.0x) ๐ |
IndexedWrite(1000000) |
3.656ms (1.1x) | 1.892ms (2.1x) | 1.868ms โ(2.1x) | 2.775ms (1.4x) | 1.796ms โ(2.2x) | 1.744ms โ(2.3x) ๐ข | 3.956ms (1.0x) ๐ |
Remove(1000) |
0.087ms (0.3x) ๐ | 0.011ms (1.9x) | 0.011ms โ(2.1x) | 0.085ms (0.3x) | 0.011ms โ(2.0x) | 0.010ms โ(2.2x) ๐ข | 0.022ms (1.0x) |
Remove(10000) |
7.626ms (0.1x) ๐ | 0.732ms (1.2x) | 0.717ms โ(1.2x) | 7.616ms (0.1x) | 0.716ms โ(1.2x) | 0.704ms โ(1.2x) ๐ข | 0.853ms (1.0x) |
Foreach(10000) |
0.038ms (0.6x) ๐ | 0.004ms (5.8x) | 0.003ms โ(8.8x) | 0.016ms (1.5x) | 0.003ms โ(9.0x) ๐ข | 0.003ms โ(9.0x) ๐ข | 0.024ms (1.0x) |
Foreach(100000) |
0.381ms (0.6x) ๐ | 0.037ms (6.5x) | 0.024ms (10.0x) | 0.160ms (1.5x) | 0.024ms (10.0x) ๐ข | 0.024ms (10.0x) ๐ข | 0.242ms (1.0x) |
Foreach(1000000) |
3.815ms (0.6x) ๐ | 0.360ms (6.7x) | 0.229ms (10.6x) | 1.621ms (1.5x) | 0.226ms (10.7x) ๐ข | 0.226ms (10.7x) | 2.419ms (1.0x) |
ยน Optimizations were disabled to perform this benchmark
ยณ AddGrow(capacity, growTo) -- Incrementally grows from capacity
until reaching size of growTo
ParallelHashMap
Functionality | NativeParallelHashMap (S) | NativeParallelHashMap (S+B) | NativeParallelHashMap (B) | UnsafeParallelHashMap (S) | UnsafeParallelHashMap (S+B) | UnsafeParallelHashMap (B) | ConcurrentDictionary (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(1, 0) ยน |
0.462ms โ(176.1x) | 0.141ms โ(577.9x) | 0.109ms โ(748.4x) ๐ข | 0.261ms โ(312.0x) | 0.162ms โ(501.5x) | 0.174ms โ(469.0x) | 81.423ms (1.0x) ๐ |
IsEmpty_x_100k(2, 0) ยนหยฒ |
0.234ms โ(551.2x) | 0.072ms (1782.5x) ๐ข | 0.090ms (1427.8x) | 0.134ms โ(965.2x) | 0.096ms (1338.9x) | 0.091ms (1412.9x) | 129.140ms (1.0x) ๐ |
IsEmpty_x_100k(4, 0) ยนหยฒ |
0.267ms โ(644.7x) | 0.042ms (4088.3x) ๐ข | 0.050ms (3473.0x) | 0.078ms (2214.0x) | 0.048ms (3604.1x) | 0.047ms (3626.9x) | 171.914ms (1.0x) ๐ |
IsEmpty_x_100k(1, 100) ยน |
0.682ms โ(114.0x) | 0.238ms โ(326.4x) | 0.242ms โ(322.0x) | 0.582ms โ(133.7x) | 0.181ms โ(429.8x) | 0.181ms โ(429.9x) ๐ข | 77.786ms (1.0x) ๐ |
IsEmpty_x_100k(2, 100) ยนหยฒ |
0.380ms โ(341.5x) | 0.124ms (1046.8x) | 0.142ms โ(911.2x) | 0.295ms โ(440.2x) | 0.093ms (1399.5x) ๐ข | 0.095ms (1370.0x) | 129.804ms (1.0x) ๐ |
IsEmpty_x_100k(4, 100) ยนหยฒ |
0.354ms โ(490.4x) | 0.114ms (1518.7x) | 0.125ms (1385.9x) | 0.217ms โ(799.6x) | 0.109ms (1596.9x) | 0.062ms (2818.0x) ๐ข | 173.587ms (1.0x) ๐ |
Count_x_100k(1, 0) ยน |
0.535ms โ(150.8x) | 0.201ms โ(401.0x) | 0.155ms โ(521.9x) ๐ข | 0.287ms โ(280.9x) | 0.181ms โ(445.7x) | 0.161ms โ(501.3x) | 80.634ms (1.0x) ๐ |
Count_x_100k(2, 0) ยนหยฒ |
0.271ms โ(455.4x) | 0.103ms (1195.2x) | 0.080ms (1532.7x) ๐ข | 0.148ms โ(831.5x) | 0.093ms (1326.5x) | 0.083ms (1491.0x) | 123.229ms (1.0x) ๐ |
Count_x_100k(4, 0) ยนหยฒ |
0.144ms (1320.5x) | 0.061ms (3106.4x) | 0.046ms (4132.8x) ๐ข | 0.083ms (2294.1x) | 0.103ms (1846.0x) | 0.051ms (3730.1x) | 189.491ms (1.0x) ๐ |
Count_x_100k(1, 100) ยน |
3.685ms โโ(25.7x) | 1.444ms โโ(65.7x) ๐ข | 1.693ms โโ(56.0x) | 3.191ms โโ(29.7x) | 1.544ms โโ(61.4x) | 1.614ms โโ(58.8x) | 94.884ms (1.0x) ๐ |
Count_x_100k(2, 100) ยนหยฒ |
1.845ms โโ(73.9x) | 0.736ms โ(185.3x) ๐ข | 0.887ms โ(153.8x) | 1.595ms โโ(85.5x) | 0.773ms โ(176.6x) | 0.825ms โ(165.4x) | 136.423ms (1.0x) ๐ |
Count_x_100k(4, 100) ยนหยฒ |
1.613ms โ(113.9x) | 0.708ms โ(259.3x) | 0.707ms โ(259.9x) | 1.460ms โ(125.8x) | 0.746ms โ(246.2x) | 0.689ms โ(266.5x) ๐ข | 183.655ms (1.0x) ๐ |
ToNativeArrayKeys(1, 10000) |
0.150ms โโโ(1.2x) | 0.121ms โโโ(1.5x) | 0.081ms โโโ(2.2x) ๐ข | 0.201ms โโโ(0.9x) ๐ | 0.129ms โโโ(1.4x) | 0.111ms โโโ(1.6x) | 0.180ms (1.0x) |
ToNativeArrayKeys(1, 100000) |
1.652ms โโโ(1.4x) | 1.243ms โโโ(1.9x) | 1.052ms โโโ(2.2x) ๐ข | 1.796ms โโโ(1.3x) | 1.402ms โโโ(1.7x) | 1.053ms โโโ(2.2x) | 2.336ms (1.0x) ๐ |
ToNativeArrayKeys(1, 1000000) |
36.653ms โโโ(0.7x) ๐ | 17.665ms โโโ(1.4x) | 12.848ms โโโ(2.0x) | 36.236ms โโโ(0.7x) | 18.985ms โโโ(1.3x) | 10.798ms โโโ(2.3x) ๐ข | 25.361ms (1.0x) |
ToNativeArrayValues(1, 10000) |
0.150ms โโโ(0.9x) | 0.121ms โโโ(1.2x) | 0.080ms โโโ(1.8x) | 0.151ms โโโ(0.9x) ๐ | 0.122ms โโโ(1.2x) | 0.079ms โโโ(1.8x) ๐ข | 0.141ms (1.0x) |
ToNativeArrayValues(1, 100000) |
1.626ms โโโ(1.1x) | 1.235ms โโโ(1.4x) | 0.862ms โโโ(2.1x) ๐ข | 1.629ms โโโ(1.1x) | 1.229ms โโโ(1.4x) | 0.872ms โโโ(2.0x) | 1.773ms (1.0x) ๐ |
ToNativeArrayValues(1, 1000000) |
20.867ms โโโ(1.1x) | 15.371ms โโโ(1.5x) | 11.046ms โโโ(2.1x) | 24.782ms โโโ(1.0x) ๐ | 17.345ms โโโ(1.4x) | 10.785ms โโโ(2.2x) ๐ข | 23.593ms (1.0x) |
Insert(1, 10000) |
0.353ms โโโ(5.6x) | 0.209ms โโโ(9.5x) | 0.212ms โโโ(9.3x) | 0.320ms โโโ(6.2x) | 0.205ms โโโ(9.6x) ๐ข | 0.211ms โโโ(9.4x) | 1.979ms (1.0x) ๐ |
Insert(2, 10000) ยฒ |
0.543ms โโโ(4.3x) | 0.514ms โโโ(4.5x) | 0.329ms โโโ(7.1x) | 0.400ms โโโ(5.8x) | 0.266ms โโโ(8.8x) ๐ข | 0.379ms โโโ(6.1x) | 2.330ms (1.0x) ๐ |
Insert(4, 10000) ยฒ |
0.449ms โโโ(5.2x) | 0.290ms โโโ(8.0x) | 0.217ms โโ(10.6x) ๐ข | 0.285ms โโโ(8.1x) | 0.249ms โโโ(9.3x) | 0.270ms โโโ(8.6x) | 2.314ms (1.0x) ๐ |
Insert(1, 100000) |
3.818ms โโโ(5.8x) | 2.325ms โโโ(9.5x) | 2.281ms โโโ(9.6x) | 3.442ms โโโ(6.4x) | 2.218ms โโโ(9.9x) ๐ข | 2.285ms โโโ(9.6x) | 21.983ms (1.0x) ๐ |
Insert(2, 100000) ยฒ |
5.611ms โโโ(4.1x) | 4.873ms โโโ(4.8x) | 3.254ms โโโ(7.1x) | 4.090ms โโโ(5.7x) | 2.645ms โโโ(8.8x) ๐ข | 3.080ms โโโ(7.5x) | 23.181ms (1.0x) ๐ |
Insert(4, 100000) ยฒ |
4.523ms โโโ(5.3x) | 2.897ms โโโ(8.3x) | 2.156ms โโ(11.2x) | 3.541ms โโโ(6.8x) | 2.201ms โโ(11.0x) | 2.096ms โโ(11.5x) ๐ข | 24.121ms (1.0x) ๐ |
Insert(1, 1000000) |
60.383ms โโโ(7.0x) | 36.007ms โโ(11.8x) ๐ข | 36.109ms โโ(11.8x) | 53.923ms โโโ(7.9x) | 36.016ms โโ(11.8x) | 36.542ms โโ(11.6x) | 425.024ms (1.0x) ๐ |
Insert(2, 1000000) ยฒ |
62.895ms โโโ(7.1x) | 50.118ms โโโ(8.9x) | 40.151ms โโ(11.1x) | 50.271ms โโโ(8.8x) | 39.964ms โโ(11.1x) | 38.384ms โโ(11.6x) ๐ข | 443.920ms (1.0x) ๐ |
Insert(4, 1000000) ยฒ |
42.694ms โโโ(7.6x) | 36.240ms โโโ(9.0x) | 24.896ms โโ(13.1x) | 30.771ms โโ(10.6x) | 24.408ms โโ(13.3x) ๐ข | 25.097ms โโ(13.0x) | 325.595ms (1.0x) ๐ |
AddGrow(1, 4, 1048576) ยณ |
72.547ms โโโ(5.9x) | 39.816ms โโ(10.7x) | 39.313ms โโ(10.8x) | 71.458ms โโโ(6.0x) | 39.813ms โโ(10.7x) | 39.265ms โโ(10.8x) ๐ข | 425.495ms (1.0x) ๐ |
AddGrow(1, 65536, 1048576) ยณ |
68.046ms โโ(10.0x) | 39.004ms โโ(17.5x) | 38.764ms โโ(17.6x) | 67.198ms โโ(10.2x) | 38.417ms โโ(17.8x) ๐ข | 38.540ms โโ(17.7x) | 683.780ms (1.0x) ๐ |
Contains(1, 10000) |
0.145ms โโโ(1.6x) | 0.033ms โโโ(6.9x) | 0.028ms โโโ(8.0x) ๐ข | 0.118ms โโโ(1.9x) | 0.036ms โโโ(6.3x) | 0.029ms โโโ(7.9x) | 0.228ms (1.0x) ๐ |
Contains(2, 10000) ยฒ |
0.127ms โโโ(1.5x) | 0.042ms โโโ(4.6x) | 0.036ms โโโ(5.4x) ๐ข | 0.111ms โโโ(1.8x) | 0.038ms โโโ(5.2x) | 0.036ms โโโ(5.3x) | 0.194ms (1.0x) ๐ |
Contains(4, 10000) ยฒ |
0.167ms โโโ(1.3x) | 0.052ms โโโ(4.1x) | 0.055ms โโโ(3.9x) | 0.100ms โโโ(2.1x) | 0.068ms โโโ(3.1x) | 0.039ms โโโ(5.5x) ๐ข | 0.213ms (1.0x) ๐ |
Contains(1, 100000) |
2.247ms โโโ(1.5x) | 0.650ms โโโ(5.0x) | 0.498ms โโโ(6.6x) ๐ข | 1.849ms โโโ(1.8x) | 0.650ms โโโ(5.0x) | 0.500ms โโโ(6.6x) | 3.277ms (1.0x) ๐ |
Contains(2, 100000) ยฒ |
1.226ms โโโ(1.4x) | 0.403ms โโโ(4.4x) | 0.328ms โโโ(5.4x) ๐ข | 1.077ms โโโ(1.6x) | 0.408ms โโโ(4.3x) | 0.330ms โโโ(5.3x) | 1.761ms (1.0x) ๐ |
Contains(4, 100000) ยฒ |
1.065ms โโโ(2.2x) | 0.334ms โโโ(7.0x) | 0.268ms โโโ(8.7x) ๐ข | 0.883ms โโโ(2.6x) | 0.319ms โโโ(7.3x) | 0.540ms โโโ(4.3x) | 2.332ms (1.0x) ๐ |
Contains(1, 1000000) |
66.122ms โโโ(1.5x) | 16.585ms โโโ(5.9x) | 12.089ms โโโ(8.0x) ๐ข | 59.523ms โโโ(1.6x) | 17.021ms โโโ(5.7x) | 12.118ms โโโ(8.0x) | 97.095ms (1.0x) ๐ |
Contains(2, 1000000) ยฒ |
31.624ms โโโ(1.6x) | 8.707ms โโโ(5.8x) | 6.498ms โโโ(7.8x) ๐ข | 29.568ms โโโ(1.7x) | 8.714ms โโโ(5.8x) | 6.511ms โโโ(7.8x) | 50.806ms (1.0x) ๐ |
Contains(4, 1000000) ยฒ |
25.406ms โโโ(1.7x) | 6.925ms โโโ(6.3x) | 5.677ms โโโ(7.7x) | 22.636ms โโโ(1.9x) | 6.716ms โโโ(6.5x) | 5.494ms โโโ(7.9x) ๐ข | 43.614ms (1.0x) ๐ |
IndexedRead(1, 10000) |
0.145ms โโโ(1.6x) | 0.029ms โโโ(8.1x) ๐ข | 0.032ms โโโ(7.3x) | 0.137ms โโโ(1.7x) | 0.031ms โโโ(7.5x) | 0.031ms โโโ(7.7x) | 0.235ms (1.0x) ๐ |
IndexedRead(2, 10000) ยฒ |
0.202ms โโโ(1.4x) | 0.059ms โโโ(4.9x) | 0.062ms โโโ(4.7x) | 0.191ms โโโ(1.5x) | 0.041ms โโโ(7.0x) ๐ข | 0.066ms โโโ(4.4x) | 0.288ms (1.0x) ๐ |
IndexedRead(4, 10000) ยฒ |
0.581ms โโโ(0.9x) ๐ | 0.129ms โโโ(3.9x) | 0.098ms โโโ(5.1x) | 0.264ms โโโ(1.9x) | 0.071ms โโโ(7.1x) ๐ข | 0.097ms โโโ(5.2x) | 0.501ms (1.0x) |
IndexedRead(1, 100000) |
2.216ms โโโ(1.5x) | 0.592ms โโโ(5.6x) ๐ข | 0.604ms โโโ(5.5x) | 2.140ms โโโ(1.5x) | 0.600ms โโโ(5.5x) | 0.607ms โโโ(5.4x) | 3.291ms (1.0x) ๐ |
IndexedRead(2, 100000) ยฒ |
2.416ms โโโ(1.5x) | 0.698ms โโโ(5.0x) | 0.692ms โโโ(5.1x) ๐ข | 2.270ms โโโ(1.5x) | 0.707ms โโโ(5.0x) | 0.743ms โโโ(4.7x) | 3.506ms (1.0x) ๐ |
IndexedRead(4, 100000) ยฒ |
4.094ms โโโ(1.4x) | 1.071ms โโโ(5.4x) | 1.053ms โโโ(5.5x) ๐ข | 7.214ms โโโ(0.8x) ๐ | 1.058ms โโโ(5.5x) | 1.794ms โโโ(3.2x) | 5.780ms (1.0x) |
IndexedRead(1, 1000000) |
64.603ms โโโ(1.5x) | 17.636ms โโโ(5.5x) | 17.726ms โโโ(5.5x) | 62.234ms โโโ(1.6x) | 17.652ms โโโ(5.5x) | 17.411ms โโโ(5.6x) ๐ข | 96.983ms (1.0x) ๐ |
IndexedRead(2, 1000000) ยฒ |
63.460ms โโโ(1.6x) | 17.217ms โโโ(5.8x) | 17.124ms โโโ(5.8x) | 61.578ms โโโ(1.6x) | 17.127ms โโโ(5.8x) | 16.957ms โโโ(5.8x) ๐ข | 99.146ms (1.0x) ๐ |
IndexedRead(4, 1000000) ยฒ |
68.243ms โโโ(1.4x) | 28.318ms โโโ(3.4x) | 27.812ms โโโ(3.5x) | 69.192ms โโโ(1.4x) | 26.990ms โโโ(3.6x) ๐ข | 27.918ms โโโ(3.5x) | 97.383ms (1.0x) ๐ |
IndexedWrite(1, 10000) |
0.164ms โโโ(2.8x) | 0.051ms โโโ(9.0x) | 0.041ms โโ(11.0x) | 0.131ms โโโ(3.5x) | 0.040ms โโ(11.4x) | 0.038ms โโ(12.0x) ๐ข | 0.456ms (1.0x) ๐ |
IndexedWrite(1, 100000) |
2.333ms โโโ(2.6x) | 0.901ms โโโ(6.7x) | 0.731ms โโโ(8.3x) | 2.077ms โโโ(2.9x) | 0.781ms โโโ(7.8x) | 0.710ms โโโ(8.5x) ๐ข | 6.067ms (1.0x) ๐ |
IndexedWrite(1, 1000000) |
76.627ms โโโ(2.5x) | 67.296ms โโโ(2.8x) ๐ข | 68.052ms โโโ(2.8x) | 85.977ms โโโ(2.2x) | 68.516ms โโโ(2.8x) | 69.221ms โโโ(2.8x) | 191.108ms (1.0x) ๐ |
TryGetValue(1, 10000) |
0.154ms โโโ(1.3x) | 0.043ms โโโ(4.8x) | 0.032ms โโโ(6.4x) | 0.117ms โโโ(1.8x) | 0.043ms โโโ(4.8x) | 0.031ms โโโ(6.6x) ๐ข | 0.206ms (1.0x) ๐ |
TryGetValue(2, 10000) ยฒ |
0.125ms โโโ(1.4x) | 0.045ms โโโ(3.8x) | 0.036ms โโโ(4.8x) ๐ข | 0.110ms โโโ(1.6x) | 0.046ms โโโ(3.7x) | 0.036ms โโโ(4.8x) | 0.172ms (1.0x) ๐ |
TryGetValue(4, 10000) ยฒ |
0.170ms โโโ(0.7x) ๐ | 0.051ms โโโ(2.4x) | 0.038ms โโโ(3.3x) ๐ข | 0.103ms โโโ(1.2x) | 0.078ms โโโ(1.6x) | 0.039ms โโโ(3.2x) | 0.125ms (1.0x) |
TryGetValue(1, 100000) |
2.187ms โโโ(1.5x) | 0.839ms โโโ(4.0x) | 0.616ms โโโ(5.4x) ๐ข | 1.925ms โโโ(1.7x) | 0.815ms โโโ(4.1x) | 0.628ms โโโ(5.3x) | 3.336ms (1.0x) ๐ |
TryGetValue(2, 100000) ยฒ |
1.216ms โโโ(1.5x) | 0.478ms โโโ(3.7x) | 0.342ms โโโ(5.2x) ๐ข | 1.072ms โโโ(1.7x) | 0.489ms โโโ(3.6x) | 0.391ms โโโ(4.5x) | 1.769ms (1.0x) ๐ |
TryGetValue(4, 100000) ยฒ |
1.042ms โโโ(1.7x) | 0.408ms โโโ(4.3x) ๐ข | 0.617ms โโโ(2.8x) | 0.899ms โโโ(1.9x) | 0.915ms โโโ(1.9x) | 0.636ms โโโ(2.7x) | 1.736ms (1.0x) ๐ |
TryGetValue(1, 1000000) |
65.145ms โโโ(1.5x) | 25.321ms โโโ(3.8x) | 19.163ms โโโ(5.0x) | 59.895ms โโโ(1.6x) | 23.602ms โโโ(4.1x) | 18.464ms โโโ(5.2x) ๐ข | 96.395ms (1.0x) ๐ |
TryGetValue(2, 1000000) ยฒ |
31.724ms โโโ(1.5x) | 12.422ms โโโ(4.0x) | 9.631ms โโโ(5.1x) | 30.638ms โโโ(1.6x) | 12.432ms โโโ(4.0x) | 9.589ms โโโ(5.1x) ๐ข | 49.107ms (1.0x) ๐ |
TryGetValue(4, 1000000) ยฒ |
25.831ms โโโ(1.6x) | 10.070ms โโโ(4.1x) | 7.992ms โโโ(5.2x) ๐ข | 23.710ms โโโ(1.8x) | 10.235ms โโโ(4.1x) | 8.062ms โโโ(5.2x) | 41.691ms (1.0x) ๐ |
Remove(1, 10000) |
0.120ms โโโ(4.5x) | 0.214ms โโโ(2.5x) | 0.050ms โโ(11.0x) | 0.095ms โโโ(5.7x) | 0.050ms โโ(10.9x) | 0.049ms โโ(11.1x) ๐ข | 0.545ms (1.0x) ๐ |
Remove(1, 100000) |
1.928ms โโโ(3.4x) | 0.929ms โโโ(7.0x) | 0.805ms โโโ(8.1x) | 1.682ms โโโ(3.9x) | 0.867ms โโโ(7.5x) | 0.793ms โโโ(8.2x) ๐ข | 6.512ms (1.0x) ๐ |
Remove(1, 1000000) |
64.353ms โโโ(3.1x) | 56.893ms โโโ(3.5x) ๐ข | 57.422ms โโโ(3.4x) | 62.480ms โโโ(3.1x) | 57.884ms โโโ(3.4x) | 57.271ms โโโ(3.4x) | 196.582ms (1.0x) ๐ |
Foreach(1, 10000) |
0.156ms โโโ(2.5x) | 0.086ms โโโ(4.6x) | 0.073ms โโโ(5.4x) ๐ข | 0.143ms โโโ(2.7x) | 0.080ms โโโ(4.9x) | 0.080ms โโโ(4.9x) | 0.393ms (1.0x) ๐ |
Foreach(1, 100000) |
2.094ms โโโ(2.3x) | 0.931ms โโโ(5.2x) | 0.839ms โโโ(5.8x) ๐ข | 1.862ms โโโ(2.6x) | 0.885ms โโโ(5.5x) | 0.884ms โโโ(5.5x) | 4.876ms (1.0x) ๐ |
Foreach(1, 1000000) |
28.544ms โโโ(2.0x) | 11.060ms โโโ(5.1x) | 10.143ms โโโ(5.6x) ๐ข | 27.167ms โโโ(2.1x) | 10.318ms โโโ(5.5x) | 10.364ms โโโ(5.5x) | 56.852ms (1.0x) ๐ |
ยน Optimizations were disabled to perform this benchmark
ยฒ Benchmark run on parallel job workers - results may vary
ยณ AddGrow(workers, capacity, growTo) -- Incrementally grows from capacity
until reaching size of growTo
ParallelHashSet
Functionality | NativeParallelHashSet (S) | NativeParallelHashSet (S+B) | NativeParallelHashSet (B) | UnsafeParallelHashSet (S) | UnsafeParallelHashSet (S+B) | UnsafeParallelHashSet (B) | HashSet w/lock (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(1, 0) ยน |
0.482ms โโ(9.2x) | 0.115ms โ(38.5x) ๐ข | 0.176ms โ(25.1x) | 0.301ms โ(14.7x) | 0.183ms โ(24.2x) | 0.171ms โ(25.8x) | 4.422ms (1.0x) ๐ |
IsEmpty_x_100k(2, 0) ยนหยฒ |
0.244ms โ(61.6x) | 0.060ms (250.7x) ๐ข | 0.092ms (164.2x) | 0.154ms โ(98.0x) | 0.091ms (166.2x) | 0.086ms (175.3x) | 15.041ms (1.0x) ๐ |
IsEmpty_x_100k(4, 0) ยนหยฒ |
0.274ms (114.9x) | 0.037ms (849.5x) ๐ข | 0.048ms (659.1x) | 0.153ms (206.3x) | 0.049ms (640.4x) | 0.047ms (667.5x) | 31.474ms (1.0x) ๐ |
IsEmpty_x_100k(1, 100) ยน |
0.567ms โโ(7.8x) | 0.128ms โ(34.7x) | 0.201ms โ(22.0x) | 0.401ms โ(11.0x) | 0.142ms โ(31.2x) | 0.108ms โ(40.9x) ๐ข | 4.424ms (1.0x) ๐ |
IsEmpty_x_100k(2, 100) ยนหยฒ |
0.288ms โ(52.5x) | 0.068ms (221.0x) | 0.105ms (143.5x) | 0.217ms โ(69.9x) | 0.074ms (205.5x) | 0.057ms (264.5x) ๐ข | 15.128ms (1.0x) ๐ |
IsEmpty_x_100k(4, 100) ยนหยฒ |
0.315ms โ(99.6x) | 0.072ms (437.6x) | 0.058ms (538.5x) | 0.185ms (169.8x) | 0.046ms (686.0x) | 0.037ms (842.3x) ๐ข | 31.420ms (1.0x) ๐ |
Count_x_100k(1, 0) ยน |
0.535ms โโ(8.3x) | 0.201ms โ(22.1x) | 0.161ms โ(27.6x) | 0.456ms โโ(9.7x) | 0.181ms โ(24.5x) | 0.161ms โ(27.6x) ๐ข | 4.435ms (1.0x) ๐ |
Count_x_100k(2, 0) ยนหยฒ |
0.271ms โ(59.0x) | 0.103ms (155.8x) | 0.082ms (193.8x) ๐ข | 0.231ms โ(69.1x) | 0.093ms (171.9x) | 0.083ms (192.9x) | 15.965ms (1.0x) ๐ |
Count_x_100k(4, 0) ยนหยฒ |
0.224ms (173.7x) | 0.115ms (337.8x) | 0.049ms (789.8x) ๐ข | 0.164ms (237.0x) | 0.054ms (724.3x) | 0.073ms (529.1x) | 38.861ms (1.0x) ๐ |
Count_x_100k(1, 100) ยน |
4.426ms โโ(1.0x) | 1.620ms โโ(2.7x) | 1.517ms โโ(2.9x) ๐ข | 3.323ms โโ(1.3x) | 1.538ms โโ(2.9x) | 2.268ms โโ(2.0x) | 4.438ms (1.0x) ๐ |
Count_x_100k(2, 100) ยนหยฒ |
2.462ms โโ(6.2x) | 1.020ms โ(14.9x) | 0.763ms โ(19.9x) ๐ข | 1.683ms โโ(9.0x) | 0.783ms โ(19.4x) | 0.824ms โ(18.4x) | 15.206ms (1.0x) ๐ |
Count_x_100k(4, 100) ยนหยฒ |
1.778ms โ(18.1x) | 0.848ms โ(37.9x) | 0.723ms โ(44.5x) | 1.556ms โ(20.7x) | 0.744ms โ(43.2x) | 0.665ms โ(48.4x) ๐ข | 32.165ms (1.0x) ๐ |
ToNativeArray(1, 10000) |
0.039ms โโ(0.5x) ๐ | 0.021ms โโ(0.8x) | 0.009ms โโ(1.9x) | 0.038ms โโ(0.5x) | 0.021ms โโ(0.8x) | 0.009ms โโ(1.9x) ๐ข | 0.018ms (1.0x) |
ToNativeArray(1, 100000) |
0.428ms โโ(0.4x) | 0.202ms โโ(0.9x) | 0.084ms โโ(2.1x) ๐ข | 0.437ms โโ(0.4x) ๐ | 0.202ms โโ(0.9x) | 0.084ms โโ(2.1x) ๐ข | 0.175ms (1.0x) |
ToNativeArray(1, 1000000) |
4.489ms โโ(0.4x) | 2.192ms โโ(0.9x) | 1.051ms โโ(1.9x) ๐ข | 4.690ms โโ(0.4x) ๐ | 2.187ms โโ(0.9x) | 1.053ms โโ(1.9x) | 1.964ms (1.0x) |
Insert(1, 10000) |
0.330ms โ(11.3x) | 0.188ms โ(19.7x) | 0.196ms โ(19.0x) | 0.301ms โ(12.4x) | 0.186ms โ(20.0x) ๐ข | 0.202ms โ(18.4x) | 3.715ms (1.0x) ๐ |
Insert(2, 10000) ยฒ |
0.468ms โ(33.2x) | 0.487ms โ(31.9x) | 0.264ms โ(58.9x) | 0.317ms โ(49.0x) | 0.260ms โ(59.8x) ๐ข | 0.331ms โ(47.0x) | 15.537ms (1.0x) ๐ |
Insert(4, 10000) ยฒ |
0.285ms (168.3x) | 0.319ms (150.7x) | 0.169ms (283.9x) ๐ข | 0.244ms (196.6x) | 0.207ms (231.4x) | 0.225ms (212.9x) | 48.000ms (1.0x) ๐ |
Insert(1, 100000) |
3.300ms โโ(1.8x) | 1.880ms โโ(3.1x) | 1.957ms โโ(3.0x) | 3.014ms โโ(1.9x) | 1.857ms โโ(3.2x) ๐ข | 2.079ms โโ(2.8x) | 5.872ms (1.0x) ๐ |
Insert(2, 100000) ยฒ |
4.849ms โโ(3.2x) | 4.541ms โโ(3.4x) | 2.555ms โโ(6.1x) ๐ข | 3.014ms โโ(5.1x) | 3.288ms โโ(4.7x) | 3.275ms โโ(4.7x) | 15.510ms (1.0x) ๐ |
Insert(4, 100000) ยฒ |
2.759ms โ(16.9x) | 2.462ms โ(19.0x) | 1.494ms โ(31.3x) ๐ข | 2.236ms โ(20.9x) | 2.221ms โ(21.0x) | 1.804ms โ(25.9x) | 46.684ms (1.0x) ๐ |
Insert(1, 1000000) |
33.989ms โโ(1.8x) | 19.882ms โโ(3.1x) | 20.803ms โโ(3.0x) | 31.233ms โโ(2.0x) | 19.637ms โโ(3.1x) ๐ข | 20.789ms โโ(3.0x) | 61.451ms (1.0x) ๐ |
Insert(2, 1000000) ยฒ |
48.854ms โโ(1.4x) | 46.969ms โโ(1.5x) | 27.594ms โโ(2.5x) ๐ข | 31.891ms โโ(2.2x) | 33.639ms โโ(2.1x) | 35.067ms โโ(2.0x) | 70.068ms (1.0x) ๐ |
Insert(4, 1000000) ยฒ |
32.946ms โโ(2.8x) | 28.736ms โโ(3.2x) | 18.753ms โโ(4.9x) ๐ข | 21.186ms โโ(4.3x) | 24.702ms โโ(3.7x) | 21.382ms โโ(4.3x) | 91.349ms (1.0x) ๐ |
AddGrow(1, 4, 1048576) ยณ |
36.009ms โโ(1.8x) | 12.228ms โโ(5.4x) | 11.699ms โโ(5.6x) ๐ข | 34.592ms โโ(1.9x) | 11.898ms โโ(5.5x) | 11.875ms โโ(5.6x) | 65.912ms (1.0x) ๐ |
AddGrow(1, 65536, 1048576) ยณ |
33.973ms โโ(1.7x) | 11.863ms โโ(4.9x) | 11.247ms โโ(5.2x) | 32.550ms โโ(1.8x) | 11.464ms โโ(5.1x) | 11.203ms โโ(5.2x) ๐ข | 58.064ms (1.0x) ๐ |
Contains(1, 10000) |
0.109ms โโ(5.6x) | 0.019ms โ(32.3x) | 0.013ms โ(47.2x) | 0.095ms โโ(6.4x) | 0.017ms โ(35.8x) | 0.010ms โ(60.2x) ๐ข | 0.611ms (1.0x) ๐ |
Contains(2, 10000) ยฒ |
0.101ms (141.6x) | 0.019ms (749.5x) ๐ข | 0.021ms (683.2x) | 0.060ms (239.8x) | 0.019ms (747.6x) | 0.021ms (683.2x) | 14.279ms (1.0x) ๐ |
Contains(4, 10000) ยฒ |
0.098ms (128.3x) | 0.031ms (402.6x) | 0.023ms (559.2x) | 0.057ms (219.8x) | 0.021ms (607.8x) ๐ข | 0.022ms (561.7x) | 12.582ms (1.0x) ๐ |
Contains(1, 100000) |
1.531ms โโ(4.6x) | 0.284ms โ(24.8x) | 0.191ms โ(36.8x) | 1.345ms โโ(5.2x) | 0.300ms โ(23.5x) | 0.191ms โ(36.9x) ๐ข | 7.043ms (1.0x) ๐ |
Contains(2, 100000) ยฒ |
0.925ms โ(23.2x) | 0.225ms โ(95.8x) | 0.165ms (130.4x) ๐ข | 0.827ms โ(26.0x) | 0.227ms โ(94.7x) | 0.166ms (129.7x) | 21.506ms (1.0x) ๐ |
Contains(4, 100000) ยฒ |
0.717ms โ(46.9x) | 0.204ms (164.7x) | 0.120ms (279.4x) ๐ข | 0.689ms โ(48.8x) | 0.389ms โ(86.5x) | 0.275ms (122.2x) | 33.617ms (1.0x) ๐ |
Contains(1, 1000000) |
18.170ms โโ(4.5x) | 3.754ms โ(21.7x) | 2.522ms โ(32.4x) | 16.496ms โโ(4.9x) | 3.749ms โ(21.8x) | 2.491ms โ(32.8x) ๐ข | 81.628ms (1.0x) ๐ |
Contains(2, 1000000) ยฒ |
11.131ms โโ(7.8x) | 2.652ms โ(32.7x) | 2.045ms โ(42.5x) ๐ข | 9.589ms โโ(9.1x) | 2.733ms โ(31.8x) | 2.076ms โ(41.8x) | 86.828ms (1.0x) ๐ |
Contains(4, 1000000) ยฒ |
8.584ms โ(12.8x) | 3.407ms โ(32.3x) | 2.220ms โ(49.5x) | 8.219ms โ(13.4x) | 2.053ms โ(53.5x) ๐ข | 2.324ms โ(47.3x) | 109.936ms (1.0x) ๐ |
Remove(1, 10000) |
0.139ms โโ(4.4x) | 0.065ms โโ(9.3x) | 0.059ms โ(10.3x) ๐ข | 0.110ms โโ(5.6x) | 0.061ms โ(10.0x) | 0.060ms โ(10.2x) | 0.611ms (1.0x) ๐ |
Remove(1, 100000) |
1.694ms โโ(3.9x) | 0.798ms โโ(8.4x) | 0.689ms โโ(9.7x) ๐ข | 1.314ms โโ(5.1x) | 0.707ms โโ(9.5x) | 0.695ms โโ(9.6x) | 6.684ms (1.0x) ๐ |
Remove(1, 1000000) |
20.302ms โโ(3.7x) | 9.389ms โโ(8.0x) | 7.772ms โโ(9.7x) ๐ข | 15.004ms โโ(5.0x) | 8.087ms โโ(9.3x) | 7.788ms โโ(9.6x) | 75.082ms (1.0x) ๐ |
Foreach(1, 10000) |
0.097ms โโ(0.4x) ๐ | 0.024ms โโ(1.4x) | 0.018ms โโ(1.9x) | 0.068ms โโ(0.5x) | 0.018ms โโ(2.0x) ๐ข | 0.018ms โโ(2.0x) | 0.035ms (1.0x) |
Foreach(1, 100000) |
0.929ms โโ(0.4x) ๐ | 0.208ms โโ(1.7x) | 0.145ms โโ(2.4x) | 0.605ms โโ(0.6x) | 0.144ms โโ(2.4x) ๐ข | 0.144ms โโ(2.4x) | 0.344ms (1.0x) |
Foreach(1, 1000000) |
9.214ms โโ(0.4x) ๐ | 2.094ms โโ(1.7x) | 1.470ms โโ(2.5x) | 5.994ms โโ(0.6x) | 1.462ms โโ(2.5x) ๐ข | 1.491ms โโ(2.4x) | 3.611ms (1.0x) |
UnionWith(1, 10000) |
0.539ms โโ(0.4x) ๐ | 0.227ms โโ(1.1x) | 0.216ms โโ(1.1x) | 0.490ms โโ(0.5x) | 0.214ms โโ(1.1x) ๐ข | 0.214ms โโ(1.1x) | 0.242ms (1.0x) |
UnionWith(1, 100000) |
5.532ms โโ(0.5x) ๐ | 2.397ms โโ(1.1x) | 2.465ms โโ(1.1x) | 4.955ms โโ(0.5x) | 2.263ms โโ(1.2x) | 2.242ms โโ(1.2x) ๐ข | 2.687ms (1.0x) |
UnionWith(1, 1000000) |
79.156ms โโ(0.6x) ๐ | 41.627ms โโ(1.2x) | 36.230ms โโ(1.4x) | 72.721ms โโ(0.7x) | 36.150ms โโ(1.4x) ๐ข | 36.708ms โโ(1.3x) | 48.928ms (1.0x) |
IntersectWith(1, 10000) |
0.318ms โโ(0.9x) ๐ | 0.135ms โโ(2.1x) | 0.118ms โโ(2.4x) | 0.264ms โโ(1.1x) | 0.110ms โโ(2.6x) ๐ข | 0.112ms โโ(2.5x) | 0.286ms (1.0x) |
IntersectWith(1, 100000) |
3.460ms โโ(0.9x) ๐ | 1.490ms โโ(2.0x) | 1.322ms โโ(2.2x) | 2.881ms โโ(1.0x) | 1.259ms โโ(2.4x) ๐ข | 1.280ms โโ(2.3x) | 2.963ms (1.0x) |
IntersectWith(1, 1000000) |
50.949ms โโ(1.3x) | 18.330ms โโ(3.6x) | 16.081ms โโ(4.1x) | 41.292ms โโ(1.6x) | 15.816ms โโ(4.1x) ๐ข | 15.828ms โโ(4.1x) | 65.453ms (1.0x) ๐ |
ExceptWith(1, 10000) |
0.269ms โโ(0.9x) ๐ | 0.213ms โโ(1.1x) | 0.118ms โโ(2.0x) | 0.197ms โโ(1.2x) | 0.115ms โโ(2.0x) | 0.112ms โโ(2.1x) ๐ข | 0.230ms (1.0x) |
ExceptWith(1, 100000) |
2.960ms โโ(0.8x) ๐ | 1.408ms โโ(1.8x) | 1.335ms โโ(1.8x) | 2.181ms โโ(1.1x) | 1.320ms โโ(1.9x) | 1.280ms โโ(1.9x) ๐ข | 2.467ms (1.0x) |
ExceptWith(1, 1000000) |
40.054ms โโ(1.0x) | 20.188ms โโ(2.0x) | 18.223ms โโ(2.2x) | 30.004ms โโ(1.4x) | 18.972ms โโ(2.2x) | 17.592ms โโ(2.3x) ๐ข | 40.898ms (1.0x) ๐ |
ยน Optimizations were disabled to perform this benchmark
ยฒ Benchmark run on parallel job workers - results may vary
ยณ AddGrow(workers, capacity, growTo) -- Incrementally grows from capacity
until reaching size of growTo
QueueParallelWriter
Functionality | NativeQueueParallelWriter (S) | NativeQueueParallelWriter (S+B) | NativeQueueParallelWriter (B) | UnsafeQueueParallelWriter (S) | UnsafeQueueParallelWriter (S+B) | UnsafeQueueParallelWriter (B) | ConcurrentQueue (BCL) |
---|---|---|---|---|---|---|---|
EnqueueGrow(1, 10000) ยณ |
0.063ms โโ(1.8x) | 0.037ms โโ(3.1x) | 0.027ms โโ(4.2x) ๐ข | --- | --- | --- | 0.112ms (1.0x) ๐ |
EnqueueGrow(2, 10000) ยฒหยณ |
0.036ms โโ(3.8x) | 0.032ms โโ(4.3x) | 0.022ms โโ(6.3x) ๐ข | --- | --- | --- | 0.136ms (1.0x) ๐ |
EnqueueGrow(4, 10000) ยฒหยณ |
0.041ms โโ(5.0x) | 0.023ms โโ(9.1x) ๐ข | 0.028ms โโ(7.4x) | --- | --- | --- | 0.205ms (1.0x) ๐ |
EnqueueGrow(1, 100000) ยณ |
1.111ms โโ(1.0x) ๐ | 0.196ms โโ(5.5x) ๐ข | 0.249ms โโ(4.3x) | --- | --- | --- | 1.069ms (1.0x) |
EnqueueGrow(2, 100000) ยฒหยณ |
0.353ms โ(43.1x) | 0.129ms (118.3x) ๐ข | 0.141ms (107.9x) | --- | --- | --- | 15.233ms (1.0x) ๐ |
EnqueueGrow(4, 100000) ยฒหยณ |
0.359ms (128.0x) | 0.119ms (384.9x) | 0.101ms (455.1x) ๐ข | --- | --- | --- | 45.962ms (1.0x) ๐ |
EnqueueGrow(1, 1000000) ยณ |
6.964ms โโ(1.5x) | 1.971ms โโ(5.3x) ๐ข | 2.470ms โโ(4.2x) | --- | --- | --- | 10.493ms (1.0x) ๐ |
EnqueueGrow(2, 1000000) ยฒหยณ |
3.587ms โโ(4.2x) | 1.264ms โ(12.0x) ๐ข | 1.353ms โ(11.2x) | --- | --- | --- | 15.213ms (1.0x) ๐ |
EnqueueGrow(4, 1000000) ยฒหยณ |
3.119ms โ(14.9x) | 1.036ms โ(44.8x) | 0.915ms โ(50.7x) ๐ข | --- | --- | --- | 46.400ms (1.0x) ๐ |
Enqueue(1, 10000) โด |
0.063ms โโ(1.8x) | 0.014ms โโ(8.0x) ๐ข | 0.019ms โโ(5.9x) | --- | --- | --- | 0.112ms (1.0x) ๐ |
Enqueue(2, 10000) ยฒหโด |
0.043ms โโ(3.1x) | 0.015ms โโ(8.7x) | 0.013ms โ(10.1x) ๐ข | --- | --- | --- | 0.132ms (1.0x) ๐ |
Enqueue(4, 10000) ยฒหโด |
0.036ms โโ(5.7x) | 0.017ms โ(11.8x) | 0.016ms โ(13.0x) ๐ข | --- | --- | --- | 0.203ms (1.0x) ๐ |
Enqueue(1, 100000) โด |
0.628ms โโ(1.7x) | 0.244ms โโ(4.4x) | 0.187ms โโ(5.7x) ๐ข | --- | --- | --- | 1.068ms (1.0x) ๐ |
Enqueue(2, 100000) ยฒหโด |
0.329ms โ(46.3x) | 0.142ms (107.6x) | 0.107ms (142.5x) ๐ข | --- | --- | --- | 15.253ms (1.0x) ๐ |
Enqueue(4, 100000) ยฒหโด |
0.305ms (154.5x) | 0.077ms (611.1x) | 0.061ms (767.5x) ๐ข | --- | --- | --- | 47.086ms (1.0x) ๐ |
Enqueue(1, 1000000) โด |
6.283ms โโ(1.7x) | 1.374ms โโ(7.6x) ๐ข | 1.869ms โโ(5.6x) | --- | --- | --- | 10.486ms (1.0x) ๐ |
Enqueue(2, 1000000) ยฒหโด |
3.268ms โโ(4.7x) | 0.896ms โ(17.0x) ๐ข | 1.029ms โ(14.8x) | --- | --- | --- | 15.201ms (1.0x) ๐ |
Enqueue(4, 1000000) ยฒหโด |
2.931ms โ(15.8x) | 0.638ms โ(72.4x) ๐ข | 0.697ms โ(66.3x) | --- | --- | --- | 46.225ms (1.0x) ๐ |
ยฒ Benchmark run on parallel job workers - results may vary
ยณ EnqueueGrow(workers, insertions)
โด Enqueue(workers, insertions)
Queue
Functionality | NativeQueue (S) | NativeQueue (S+B) | NativeQueue (B) | UnsafeQueue (S) | UnsafeQueue (S+B) | UnsafeQueue (B) | Queue (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(0) ยน |
0.482ms โ(0.2x) ๐ | 0.181ms โ(0.6x) | 0.161ms โ(0.6x) | 0.232ms โ(0.4x) | 0.000ms โ(334.3x) ๐ข | 0.000ms โ(334.3x) ๐ข | 0.100ms (1.0x) |
IsEmpty_x_100k(100) ยน |
0.503ms โ(0.2x) ๐ | 0.188ms โ(0.5x) | 0.141ms โ(0.7x) | 0.241ms โ(0.4x) | 0.000ms โ(334.3x) ๐ข | 0.000ms โ(334.3x) ๐ข | 0.100ms (1.0x) |
Count_x_100k(0) ยน |
0.313ms โ(0.4x) ๐ | 0.193ms โ(0.6x) | 0.161ms โ(0.7x) | 0.189ms โ(0.6x) | 0.000ms โ(401.2x) ๐ข | 0.000ms โ(401.2x) ๐ข | 0.120ms (1.0x) |
Count_x_100k(100) ยน |
0.351ms โ(0.3x) ๐ | 0.181ms โ(0.7x) | 0.141ms โ(0.9x) | 0.231ms โ(0.5x) | 0.000ms โ(401.2x) ๐ข | 0.000ms โ(343.9x) | 0.120ms (1.0x) |
ToNativeArray(10000) |
0.003ms โ(1.2x) | 0.002ms โ(1.7x) | 0.002ms โ(1.7x) | 0.002ms โ(1.8x) ๐ข | 0.002ms โโโ(1.8x) | 0.002ms โโโ(1.8x) ๐ข | 0.003ms (1.0x) ๐ |
ToNativeArray(100000) |
0.096ms โ(0.3x) ๐ | 0.016ms โ(1.9x) | 0.015ms โ(1.9x) | 0.089ms โ(0.3x) | 0.015ms โโโ(1.9x) ๐ข | 0.015ms โโโ(1.9x) | 0.029ms (1.0x) |
ToNativeArray(1000000) |
0.991ms โ(0.8x) ๐ | 0.197ms โ(4.1x) | 0.163ms โ(5.0x) | 0.897ms โ(0.9x) | 0.156ms โโโ(5.2x) ๐ข | 0.161ms โโโ(5.0x) | 0.814ms (1.0x) |
EnqueueGrow(10000) ยณ |
0.060ms (23.4x) | 0.025ms (57.2x) | 0.024ms (59.1x) ๐ข | 0.045ms (31.3x) | 0.025ms โโ(56.4x) | 0.026ms โโ(55.1x) | 1.414ms (1.0x) ๐ |
EnqueueGrow(100000) ยณ |
0.657ms โ(0.6x) ๐ | 0.249ms โ(1.6x) | 0.231ms โ(1.8x) ๐ข | 0.445ms โ(0.9x) | 0.241ms โโโ(1.7x) | 0.248ms โโโ(1.6x) | 0.407ms (1.0x) |
EnqueueGrow(1000000) ยณ |
6.580ms โ(0.6x) ๐ | 2.452ms โ(1.6x) | 2.340ms โ(1.7x) ๐ข | 4.509ms โ(0.9x) | 2.473ms โโโ(1.6x) | 2.509ms โโโ(1.6x) | 3.931ms (1.0x) |
Enqueue(10000) โด |
0.060ms โ(0.8x) ๐ | 0.019ms โ(2.4x) | 0.018ms โ(2.5x) ๐ข | 0.039ms โ(1.2x) | 0.020ms โโโ(2.3x) | 0.020ms โโโ(2.2x) | 0.046ms (1.0x) |
Enqueue(100000) โด |
0.599ms โ(0.7x) ๐ | 0.193ms โ(2.1x) | 0.180ms โ(2.3x) ๐ข | 0.392ms โ(1.0x) | 0.198ms โโโ(2.1x) | 0.196ms โโโ(2.1x) | 0.407ms (1.0x) |
Enqueue(1000000) โด |
5.989ms โ(0.7x) ๐ | 2.048ms โ(1.9x) | 1.801ms โ(2.2x) ๐ข | 3.933ms โ(1.0x) | 2.010ms โโโ(2.0x) | 2.011ms โโโ(2.0x) | 3.933ms (1.0x) |
Dequeue(10000) |
0.066ms โ(0.6x) ๐ | 0.025ms โ(1.4x) | 0.016ms โ(2.4x) ๐ข | 0.045ms โ(0.8x) | 0.017ms โโโ(2.2x) | 0.017ms โโโ(2.2x) | 0.037ms (1.0x) |
Dequeue(100000) |
0.664ms โ(0.6x) ๐ | 0.248ms โ(1.5x) | 0.151ms โ(2.4x) ๐ข | 0.455ms โ(0.8x) | 0.158ms โโโ(2.3x) | 0.159ms โโโ(2.3x) | 0.369ms (1.0x) |
Dequeue(1000000) |
6.640ms โ(0.6x) ๐ | 2.479ms โ(1.5x) | 1.503ms โ(2.5x) ๐ข | 4.551ms โ(0.8x) | 1.578ms โโโ(2.3x) | 1.589ms โโโ(2.3x) | 3.690ms (1.0x) |
Peek(10000) ยน |
0.030ms โ(0.6x) ๐ | 0.023ms โ(0.8x) | 0.014ms โ(1.3x) | 0.012ms โ(1.5x) | 0.000ms โโ(45.4x) ๐ข | 0.000ms โโ(45.4x) ๐ข | 0.018ms (1.0x) |
Peek(100000) ยน |
0.302ms โ(0.6x) ๐ | 0.222ms โ(0.8x) | 0.134ms โ(1.4x) | 0.121ms โ(1.5x) | 0.001ms โ(278.8x) ๐ข | 0.001ms โ(258.9x) | 0.181ms (1.0x) |
Peek(1000000) ยน |
3.016ms โ(0.6x) ๐ | 2.213ms โ(0.8x) | 1.369ms โ(1.3x) | 1.205ms โ(1.5x) | 0.001ms (2127.8x) | 0.001ms (2260.8x) ๐ข | 1.809ms (1.0x) |
Foreach(10000) |
0.028ms โ(1.5x) | 0.009ms โ(4.9x) | 0.007ms โ(6.4x) | 0.018ms โ(2.3x) | 0.003ms โโ(13.9x) | 0.003ms โโ(14.1x) ๐ข | 0.042ms (1.0x) ๐ |
Foreach(100000) |
0.283ms โ(1.5x) | 0.082ms โ(5.2x) | 0.062ms โ(6.9x) | 0.182ms โ(2.3x) | 0.027ms โโ(15.5x) ๐ข | 0.027ms โโ(15.5x) ๐ข | 0.425ms (1.0x) ๐ |
Foreach(1000000) |
2.833ms โ(1.5x) | 0.812ms โ(5.2x) | 0.612ms โ(6.9x) | 1.819ms โ(2.3x) | 0.267ms โโ(15.9x) | 0.267ms โโ(15.9x) ๐ข | 4.250ms (1.0x) ๐ |
ยน Optimizations were disabled to perform this benchmark
ยณ EnqueueGrow(insertions)
โด Enqueue(insertions)
RingQueue
Functionality | NativeRingQueue (S) | NativeRingQueue (S+B) | NativeRingQueue (B) | UnsafeRingQueue (S) | UnsafeRingQueue (S+B) | UnsafeRingQueue (B) | Queue (BCL) |
---|---|---|---|---|---|---|---|
IsEmpty_x_100k(0) ยน |
0.174ms (0.7x) ๐ | 0.108ms (1.1x) ๐ข | 0.108ms (1.1x) ๐ข | 0.121ms (1.0x) | 0.111ms (1.1x) | 0.110ms (1.1x) | 0.121ms (1.0x) |
IsEmpty_x_100k(100) ยน |
0.161ms (0.8x) ๐ | 0.108ms (1.1x) | 0.108ms (1.1x) ๐ข | 0.120ms (1.0x) | 0.111ms (1.1x) | 0.110ms (1.1x) | 0.120ms (1.0x) |
Count_x_100k(0) ยน |
0.192ms (0.5x) ๐ | 0.142ms (0.7x) | 0.108ms (0.9x) | 0.120ms (0.8x) | 0.111ms (0.9x) | 0.111ms (0.9x) | 0.101ms (1.0x) ๐ข |
Count_x_100k(100) ยน |
0.188ms (0.5x) ๐ | 0.143ms (0.7x) | 0.110ms (0.9x) | 0.120ms (0.8x) | 0.111ms (0.9x) | 0.111ms (0.9x) | 0.100ms (1.0x) ๐ข |
Enqueue(10000) |
0.033ms (1.1x) | 0.019ms (1.9x) | 0.018ms (2.0x) | 0.019ms (1.9x) | 0.017ms (2.0x) ๐ข | 0.018ms (2.0x) | 0.035ms (1.0x) ๐ |
Enqueue(100000) |
0.331ms (1.1x) | 0.183ms (1.9x) | 0.173ms (2.0x) | 0.182ms (1.9x) | 0.172ms (2.0x) ๐ข | 0.173ms (2.0x) | 0.349ms (1.0x) ๐ |
Enqueue(1000000) |
3.311ms (1.1x) | 1.815ms (1.9x) | 1.725ms (2.0x) | 1.823ms (1.9x) | 1.722ms (2.0x) ๐ข | 1.732ms (2.0x) | 3.477ms (1.0x) ๐ |
Dequeue(10000) |
0.032ms (1.1x) | 0.017ms (2.1x) | 0.008ms (4.6x) ๐ข | 0.017ms (2.1x) | 0.017ms (2.1x) | 0.011ms (3.3x) | 0.035ms (1.0x) ๐ |
Dequeue(100000) |
0.326ms (1.1x) | 0.163ms (2.2x) | 0.072ms (4.9x) ๐ข | 0.167ms (2.1x) | 0.162ms (2.2x) | 0.102ms (3.5x) | 0.352ms (1.0x) ๐ |
Dequeue(1000000) |
3.257ms (1.1x) | 1.624ms (2.2x) | 0.708ms (5.0x) ๐ข | 1.666ms (2.1x) | 1.612ms (2.2x) | 1.008ms (3.5x) | 3.516ms (1.0x) ๐ |
ยน Optimizations were disabled to perform this benchmark