ef
BenchmarkDotNet v0.15.2, macOS 26.4.1 (25E253) [Darwin 25.4.0]
Apple M5, 1 CPU, 10 logical and 10 physical cores
.NET SDK 10.0.203
[Host] : .NET 8.0.26 (8.0.2626.16921), Arm64 RyuJIT AdvSIMD
.NET 10.0 : .NET 10.0.7 (10.0.726.21808), Arm64 RyuJIT AdvSIMD
.NET 8.0 : .NET 8.0.26 (8.0.2626.16921), Arm64 RyuJIT AdvSIMD
.NET 9.0 : .NET 9.0.15 (9.0.1526.17522), Arm64 RyuJIT AdvSIMD
InvocationCount=1 UnrollFactor=1
| Method | Job | Runtime | EntityCount | BatchSize | Mean | Error | StdDev | Median | Ratio | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AddAsync_One | .NET 10.0 | .NET 10.0 | 10 | 25 | 2,185.71 μs | 157.965 μs | 460.790 μs | 2,016.40 μs | 1.04 | 48256 B | 0.42 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 10 | 25 | 2,150.39 μs | 130.505 μs | 370.222 μs | 2,060.79 μs | 1.03 | 113872 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 10 | 25 | 2,115.42 μs | 130.102 μs | 373.287 μs | 2,036.17 μs | 1.01 | 47872 B | 0.42 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 10 | 25 | 4,021.55 μs | 215.171 μs | 624.250 μs | 3,956.96 μs | 1.09 | 514104 B | 0.84 |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 10 | 25 | 3,748.46 μs | 166.382 μs | 474.697 μs | 3,650.98 μs | 1.02 | 608720 B | 1.00 |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 10 | 25 | 3,724.40 μs | 180.625 μs | 515.334 μs | 3,558.48 μs | 1.01 | 503920 B | 0.83 |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 10 | 25 | 15.24 μs | 1.475 μs | 4.255 μs | 14.04 μs | 0.92 | 344 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 10 | 25 | 17.68 μs | 1.489 μs | 4.321 μs | 17.04 μs | 1.06 | 376 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 10 | 25 | 15.07 μs | 1.458 μs | 4.137 μs | 14.29 μs | 0.91 | 344 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 10 | 25 | 1,702.34 μs | 135.355 μs | 386.176 μs | 1,600.15 μs | 0.54 | 38056 B | 0.37 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 10 | 25 | 3,404.19 μs | 315.150 μs | 909.280 μs | 3,390.96 μs | 1.08 | 102272 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 10 | 25 | 1,819.38 μs | 186.250 μs | 549.163 μs | 1,600.21 μs | 0.58 | 37696 B | 0.37 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 10 | 25 | 1,605.97 μs | 133.399 μs | 384.887 μs | 1,496.96 μs | 0.46 | 28800 B | 0.31 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 10 | 25 | 3,681.02 μs | 289.741 μs | 854.307 μs | 3,609.58 μs | 1.06 | 94216 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 10 | 25 | 1,487.05 μs | 83.057 μs | 232.902 μs | 1,461.21 μs | 0.43 | 28112 B | 0.30 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 10 | 25 | 864.77 μs | 71.104 μs | 206.284 μs | 794.08 μs | 0.66 | 29664 B | 0.49 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 10 | 25 | 1,531.01 μs | 231.831 μs | 642.404 μs | 1,476.81 μs | 1.17 | 60704 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 10 | 25 | 847.28 μs | 59.707 μs | 174.168 μs | 814.56 μs | 0.65 | 29840 B | 0.49 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 10 | 25 | 817.45 μs | 40.912 μs | 119.988 μs | 791.79 μs | 1.00 | 30360 B | 0.49 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 10 | 25 | 830.08 μs | 40.033 μs | 116.778 μs | 825.40 μs | 1.02 | 61512 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 10 | 25 | 795.73 μs | 38.705 μs | 113.515 μs | 777.23 μs | 0.98 | 30840 B | 0.50 |
| AddAsync_One | .NET 10.0 | .NET 10.0 | 10 | 100 | 1,956.89 μs | 110.355 μs | 309.447 μs | 1,920.38 μs | 1.01 | 48256 B | 0.42 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 10 | 100 | 2,003.52 μs | 128.671 μs | 362.918 μs | 1,929.19 μs | 1.03 | 113872 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 10 | 100 | 2,343.06 μs | 204.133 μs | 588.970 μs | 2,146.71 μs | 1.21 | 48168 B | 0.42 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 10 | 100 | 9,244.06 μs | 447.286 μs | 1,268.876 μs | 9,088.38 μs | 0.99 | 1945960 B | 0.94 |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 10 | 100 | 9,638.87 μs | 609.352 μs | 1,748.346 μs | 9,232.94 μs | 1.03 | 2072784 B | 1.00 |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 10 | 100 | 9,990.38 μs | 683.347 μs | 2,004.137 μs | 9,130.29 μs | 1.07 | 1958328 B | 0.94 |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 10 | 100 | 13.87 μs | 1.091 μs | 3.112 μs | 13.50 μs | 0.98 | 344 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 10 | 100 | 15.30 μs | 1.450 μs | 4.206 μs | 14.29 μs | 1.08 | 376 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 10 | 100 | 14.91 μs | 1.344 μs | 3.899 μs | 14.50 μs | 1.05 | 344 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 10 | 100 | 1,739.93 μs | 149.450 μs | 435.953 μs | 1,596.90 μs | 1.09 | 37616 B | 0.37 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 10 | 100 | 1,639.99 μs | 97.008 μs | 272.021 μs | 1,613.04 μs | 1.03 | 102568 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 10 | 100 | 1,519.22 μs | 94.605 μs | 268.380 μs | 1,468.98 μs | 0.95 | 38432 B | 0.37 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 10 | 100 | 1,596.97 μs | 121.854 μs | 347.656 μs | 1,458.83 μs | 1.03 | 28064 B | 0.30 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 10 | 100 | 1,599.43 μs | 108.603 μs | 302.742 μs | 1,556.06 μs | 1.03 | 94216 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 10 | 100 | 1,432.88 μs | 96.036 μs | 266.116 μs | 1,373.12 μs | 0.93 | 28112 B | 0.30 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 10 | 100 | 787.15 μs | 40.391 μs | 115.890 μs | 769.62 μs | 0.97 | 29784 B | 0.49 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 10 | 100 | 826.43 μs | 37.358 μs | 107.186 μs | 806.67 μs | 1.02 | 60704 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 10 | 100 | 888.35 μs | 55.179 μs | 158.318 μs | 857.10 μs | 1.09 | 29840 B | 0.49 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 10 | 100 | 797.40 μs | 40.927 μs | 118.736 μs | 793.58 μs | 1.02 | 30360 B | 0.50 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 10 | 100 | 799.83 μs | 40.133 μs | 113.850 μs | 772.96 μs | 1.02 | 61088 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 10 | 100 | 811.29 μs | 42.949 μs | 125.961 μs | 790.04 μs | 1.03 | 30696 B | 0.50 |
| AddAsync_One | .NET 10.0 | .NET 10.0 | 100 | 25 | 2,160.86 μs | 162.945 μs | 472.733 μs | 2,003.67 μs | 1.06 | 48256 B | 0.43 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 100 | 25 | 2,099.33 μs | 130.409 μs | 374.167 μs | 2,013.75 μs | 1.03 | 113136 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 100 | 25 | 2,077.92 μs | 128.674 μs | 358.692 μs | 2,012.23 μs | 1.02 | 48168 B | 0.43 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 100 | 25 | 3,996.37 μs | 277.100 μs | 817.035 μs | 3,628.42 μs | 1.05 | 503296 B | 0.83 |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 100 | 25 | 3,903.69 μs | 232.818 μs | 652.847 μs | 3,664.54 μs | 1.03 | 608032 B | 1.00 |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 100 | 25 | 4,035.57 μs | 222.121 μs | 640.870 μs | 3,965.83 μs | 1.06 | 504048 B | 0.83 |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 100 | 25 | 18.24 μs | 1.187 μs | 3.385 μs | 17.83 μs | 0.93 | 344 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 100 | 25 | 20.49 μs | 1.365 μs | 3.938 μs | 20.21 μs | 1.04 | 376 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 100 | 25 | 18.32 μs | 1.251 μs | 3.570 μs | 18.23 μs | 0.93 | 344 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 100 | 25 | 2,217.59 μs | 164.981 μs | 476.008 μs | 2,111.17 μs | 1.15 | 94160 B | 0.79 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 100 | 25 | 1,994.47 μs | 128.169 μs | 373.874 μs | 1,926.94 μs | 1.03 | 118624 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 100 | 25 | 1,924.96 μs | 123.357 μs | 345.907 μs | 1,883.08 μs | 1.00 | 93288 B | 0.79 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 100 | 25 | 1,916.96 μs | 136.692 μs | 394.389 μs | 1,823.96 μs | 1.07 | 53280 B | 0.46 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 100 | 25 | 1,828.41 μs | 95.027 μs | 264.899 μs | 1,810.08 μs | 1.02 | 115096 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 100 | 25 | 1,832.30 μs | 142.993 μs | 417.117 μs | 1,697.62 μs | 1.02 | 53328 B | 0.46 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 100 | 25 | 852.13 μs | 33.264 μs | 95.441 μs | 841.98 μs | 0.94 | 29672 B | 0.32 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 100 | 25 | 924.28 μs | 49.213 μs | 141.990 μs | 894.77 μs | 1.02 | 93208 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 100 | 25 | 918.96 μs | 51.006 μs | 148.788 μs | 899.65 μs | 1.02 | 29848 B | 0.32 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 100 | 25 | 887.66 μs | 41.728 μs | 121.061 μs | 861.08 μs | 0.99 | 30064 B | 0.49 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 100 | 25 | 913.33 μs | 39.614 μs | 111.083 μs | 905.71 μs | 1.01 | 61384 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 100 | 25 | 860.05 μs | 35.515 μs | 99.589 μs | 856.00 μs | 0.95 | 30536 B | 0.50 |
| AddAsync_One | .NET 10.0 | .NET 10.0 | 100 | 100 | 2,044.21 μs | 109.533 μs | 308.941 μs | 1,951.52 μs | 0.98 | 48256 B | 0.33 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 100 | 100 | 2,159.09 μs | 145.689 μs | 418.008 μs | 2,056.54 μs | 1.03 | 146080 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 100 | 100 | 2,033.15 μs | 109.041 μs | 303.963 μs | 1,955.98 μs | 0.97 | 48168 B | 0.33 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 100 | 100 | 8,923.90 μs | 385.828 μs | 1,075.533 μs | 8,579.75 μs | 1.03 | 2051320 B | 0.95 |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 100 | 100 | 8,767.16 μs | 333.883 μs | 930.732 μs | 8,626.17 μs | 1.01 | 2152208 B | 1.00 |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 100 | 100 | 9,275.75 μs | 651.276 μs | 1,847.562 μs | 8,896.58 μs | 1.07 | 2002400 B | 0.93 |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 100 | 100 | 18.36 μs | 1.183 μs | 3.468 μs | 17.87 μs | 0.91 | 344 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 100 | 100 | 21.14 μs | 1.602 μs | 4.571 μs | 20.08 μs | 1.04 | 376 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 100 | 100 | 18.74 μs | 1.266 μs | 3.654 μs | 18.25 μs | 0.93 | 344 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 100 | 100 | 2,062.88 μs | 99.288 μs | 278.415 μs | 2,052.79 μs | 1.06 | 94064 B | 0.62 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 100 | 100 | 2,012.51 μs | 123.890 μs | 357.452 μs | 1,943.19 μs | 1.03 | 151168 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 100 | 100 | 1,915.64 μs | 98.960 μs | 277.493 μs | 1,886.75 μs | 0.98 | 94240 B | 0.62 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 100 | 100 | 1,973.79 μs | 176.320 μs | 508.722 μs | 1,840.15 μs | 1.15 | 52544 B | 0.46 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 100 | 100 | 1,756.71 μs | 102.416 μs | 283.793 μs | 1,720.37 μs | 1.02 | 115096 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 100 | 100 | 1,768.38 μs | 107.550 μs | 305.102 μs | 1,711.67 μs | 1.03 | 53328 B | 0.46 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 100 | 100 | 904.02 μs | 49.998 μs | 145.053 μs | 895.48 μs | 1.04 | 29376 B | 0.31 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 100 | 100 | 881.99 μs | 32.093 μs | 90.518 μs | 865.90 μs | 1.01 | 93504 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 100 | 100 | 928.74 μs | 51.601 μs | 149.704 μs | 882.75 μs | 1.06 | 29704 B | 0.32 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 100 | 100 | 880.07 μs | 45.484 μs | 129.031 μs | 856.48 μs | 0.96 | 30496 B | 0.50 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 100 | 100 | 936.47 μs | 52.558 μs | 150.798 μs | 904.87 μs | 1.02 | 61552 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 100 | 100 | 867.71 μs | 32.480 μs | 94.230 μs | 843.17 μs | 0.95 | 30648 B | 0.50 |
| AddAsync_One | .NET 10.0 | .NET 10.0 | 1000 | 25 | 3,461.73 μs | 283.061 μs | 816.697 μs | 3,188.94 μs | 1.60 | 48256 B | 0.33 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 1000 | 25 | 2,222.72 μs | 131.802 μs | 369.586 μs | 2,157.38 μs | 1.02 | 146664 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 1000 | 25 | 3,598.90 μs | 275.776 μs | 804.452 μs | 3,425.42 μs | 1.66 | 47432 B | 0.32 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 1000 | 25 | 5,344.26 μs | 330.562 μs | 959.021 μs | 5,247.12 μs | ? | 502680 B | ? |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 1000 | 25 | NA | NA | NA | NA | ? | NA | ? |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 1000 | 25 | 5,977.00 μs | 678.205 μs | 1,956.777 μs | 5,873.62 μs | ? | 506096 B | ? |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 1000 | 25 | 15.94 μs | 2.312 μs | 6.745 μs | 16.77 μs | 0.97 | 320 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 1000 | 25 | 18.32 μs | 2.009 μs | 5.893 μs | 19.02 μs | 1.11 | 352 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 1000 | 25 | 18.87 μs | 2.628 μs | 7.498 μs | 19.75 μs | 1.15 | 320 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 1000 | 25 | 4,136.83 μs | 407.648 μs | 1,122.782 μs | 4,165.69 μs | 1.08 | 651440 B | 1.02 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 1000 | 25 | 4,118.13 μs | 383.339 μs | 1,093.688 μs | 3,942.08 μs | 1.07 | 636848 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 1000 | 25 | 3,752.35 μs | 321.520 μs | 922.502 μs | 3,562.38 μs | 0.98 | 639600 B | 1.00 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 1000 | 25 | 3,751.26 μs | 314.620 μs | 907.750 μs | 3,762.21 μs | 0.89 | 296840 B | 1.02 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 1000 | 25 | 4,471.61 μs | 397.118 μs | 1,087.105 μs | 4,274.85 μs | 1.06 | 290184 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 1000 | 25 | 3,272.87 μs | 293.774 μs | 852.291 μs | 3,156.54 μs | 0.77 | 297920 B | 1.03 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 1000 | 25 | 1,130.67 μs | 109.729 μs | 305.879 μs | 1,051.44 μs | 1.01 | 29000 B | 0.48 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 1000 | 25 | 1,142.16 μs | 53.010 μs | 153.793 μs | 1,114.00 μs | 1.02 | 60424 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 1000 | 25 | 1,447.91 μs | 125.349 μs | 363.660 μs | 1,333.29 μs | 1.29 | 29416 B | 0.49 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 1000 | 25 | 835.79 μs | 47.695 μs | 131.367 μs | 824.92 μs | 0.86 | 29504 B | 0.31 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 1000 | 25 | 984.94 μs | 37.935 μs | 108.843 μs | 967.75 μs | 1.01 | 94496 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 1000 | 25 | 1,255.06 μs | 100.662 μs | 287.193 μs | 1,149.25 μs | 1.29 | 30184 B | 0.32 |
| AddAsync_One | .NET 10.0 | .NET 10.0 | 1000 | 100 | 3,649.03 μs | 304.559 μs | 888.412 μs | 3,454.46 μs | 1.78 | 47520 B | 0.42 |
| AddAsync_One | .NET 8.0 | .NET 8.0 | 1000 | 100 | 2,084.59 μs | 102.731 μs | 282.950 μs | 2,028.60 μs | 1.02 | 113872 B | 1.00 |
| AddAsync_One | .NET 9.0 | .NET 9.0 | 1000 | 100 | 2,284.82 μs | 160.384 μs | 465.302 μs | 2,151.42 μs | 1.11 | 48168 B | 0.42 |
| AddRangeAsync_Batch | .NET 10.0 | .NET 10.0 | 1000 | 100 | 13,662.14 μs | 1,595.532 μs | 4,577.881 μs | 12,502.58 μs | 1.38 | 2065336 B | 0.96 |
| AddRangeAsync_Batch | .NET 8.0 | .NET 8.0 | 1000 | 100 | 10,342.38 μs | 828.223 μs | 2,415.964 μs | 9,518.90 μs | 1.05 | 2157944 B | 1.00 |
| AddRangeAsync_Batch | .NET 9.0 | .NET 9.0 | 1000 | 100 | 11,452.48 μs | 916.238 μs | 2,599.216 μs | 11,051.25 μs | 1.16 | 2000608 B | 0.93 |
| FindAsync_ByKey | .NET 10.0 | .NET 10.0 | 1000 | 100 | 18.52 μs | 3.217 μs | 9.332 μs | 18.48 μs | 0.93 | 320 B | 0.91 |
| FindAsync_ByKey | .NET 8.0 | .NET 8.0 | 1000 | 100 | 22.68 μs | 2.759 μs | 8.090 μs | 22.54 μs | 1.14 | 352 B | 1.00 |
| FindAsync_ByKey | .NET 9.0 | .NET 9.0 | 1000 | 100 | 17.42 μs | 1.970 μs | 5.777 μs | 19.13 μs | 0.88 | 320 B | 0.91 |
| UpdateAsync_Entity | .NET 10.0 | .NET 10.0 | 1000 | 100 | 2,823.91 μs | 263.932 μs | 735.738 μs | 2,495.62 μs | 1.18 | 651144 B | 0.97 |
| UpdateAsync_Entity | .NET 8.0 | .NET 8.0 | 1000 | 100 | 2,579.17 μs | 270.102 μs | 774.973 μs | 2,281.25 μs | 1.08 | 670376 B | 1.00 |
| UpdateAsync_Entity | .NET 9.0 | .NET 9.0 | 1000 | 100 | 2,553.18 μs | 243.913 μs | 699.831 μs | 2,319.58 μs | 1.07 | 651160 B | 0.97 |
| RemoveAsync_Entity | .NET 10.0 | .NET 10.0 | 1000 | 100 | 2,471.74 μs | 233.533 μs | 658.685 μs | 2,217.44 μs | 1.13 | 297576 B | 0.92 |
| RemoveAsync_Entity | .NET 8.0 | .NET 8.0 | 1000 | 100 | 2,279.44 μs | 168.950 μs | 482.025 μs | 2,148.17 μs | 1.04 | 323416 B | 1.00 |
| RemoveAsync_Entity | .NET 9.0 | .NET 9.0 | 1000 | 100 | 2,378.43 μs | 223.172 μs | 651.004 μs | 2,249.31 μs | 1.09 | 296888 B | 0.92 |
| CountAsync_Filtered | .NET 10.0 | .NET 10.0 | 1000 | 100 | 1,047.55 μs | 41.239 μs | 116.315 μs | 1,032.90 μs | 0.90 | 29000 B | 0.31 |
| CountAsync_Filtered | .NET 8.0 | .NET 8.0 | 1000 | 100 | 1,185.98 μs | 56.352 μs | 161.684 μs | 1,159.71 μs | 1.02 | 93216 B | 1.00 |
| CountAsync_Filtered | .NET 9.0 | .NET 9.0 | 1000 | 100 | 1,104.04 μs | 44.933 μs | 124.510 μs | 1,102.67 μs | 0.95 | 29416 B | 0.32 |
| ExistsAsync_Filtered | .NET 10.0 | .NET 10.0 | 1000 | 100 | 942.81 μs | 49.105 μs | 139.304 μs | 901.81 μs | 0.90 | 29392 B | 0.31 |
| ExistsAsync_Filtered | .NET 8.0 | .NET 8.0 | 1000 | 100 | 1,060.89 μs | 44.064 μs | 121.366 μs | 1,033.85 μs | 1.01 | 93968 B | 1.00 |
| ExistsAsync_Filtered | .NET 9.0 | .NET 9.0 | 1000 | 100 | 1,050.13 μs | 47.664 μs | 135.216 μs | 1,022.71 μs | 1.00 | 30104 B | 0.32 |
Benchmarks with issues: EfRepositoryBenchmarks.AddRangeAsync_Batch: .NET 8.0(Runtime=.NET 8.0, InvocationCount=1, UnrollFactor=1) [EntityCount=1000, BatchSize=25]