Skip to main content

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

MethodJobRuntimeEntityCountBatchSizeMeanErrorStdDevMedianRatioAllocatedAlloc Ratio
AddAsync_One.NET 10.0.NET 10.010252,185.71 μs157.965 μs460.790 μs2,016.40 μs1.0448256 B0.42
AddAsync_One.NET 8.0.NET 8.010252,150.39 μs130.505 μs370.222 μs2,060.79 μs1.03113872 B1.00
AddAsync_One.NET 9.0.NET 9.010252,115.42 μs130.102 μs373.287 μs2,036.17 μs1.0147872 B0.42
AddRangeAsync_Batch.NET 10.0.NET 10.010254,021.55 μs215.171 μs624.250 μs3,956.96 μs1.09514104 B0.84
AddRangeAsync_Batch.NET 8.0.NET 8.010253,748.46 μs166.382 μs474.697 μs3,650.98 μs1.02608720 B1.00
AddRangeAsync_Batch.NET 9.0.NET 9.010253,724.40 μs180.625 μs515.334 μs3,558.48 μs1.01503920 B0.83
FindAsync_ByKey.NET 10.0.NET 10.0102515.24 μs1.475 μs4.255 μs14.04 μs0.92344 B0.91
FindAsync_ByKey.NET 8.0.NET 8.0102517.68 μs1.489 μs4.321 μs17.04 μs1.06376 B1.00
FindAsync_ByKey.NET 9.0.NET 9.0102515.07 μs1.458 μs4.137 μs14.29 μs0.91344 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.010251,702.34 μs135.355 μs386.176 μs1,600.15 μs0.5438056 B0.37
UpdateAsync_Entity.NET 8.0.NET 8.010253,404.19 μs315.150 μs909.280 μs3,390.96 μs1.08102272 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.010251,819.38 μs186.250 μs549.163 μs1,600.21 μs0.5837696 B0.37
RemoveAsync_Entity.NET 10.0.NET 10.010251,605.97 μs133.399 μs384.887 μs1,496.96 μs0.4628800 B0.31
RemoveAsync_Entity.NET 8.0.NET 8.010253,681.02 μs289.741 μs854.307 μs3,609.58 μs1.0694216 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.010251,487.05 μs83.057 μs232.902 μs1,461.21 μs0.4328112 B0.30
CountAsync_Filtered.NET 10.0.NET 10.01025864.77 μs71.104 μs206.284 μs794.08 μs0.6629664 B0.49
CountAsync_Filtered.NET 8.0.NET 8.010251,531.01 μs231.831 μs642.404 μs1,476.81 μs1.1760704 B1.00
CountAsync_Filtered.NET 9.0.NET 9.01025847.28 μs59.707 μs174.168 μs814.56 μs0.6529840 B0.49
ExistsAsync_Filtered.NET 10.0.NET 10.01025817.45 μs40.912 μs119.988 μs791.79 μs1.0030360 B0.49
ExistsAsync_Filtered.NET 8.0.NET 8.01025830.08 μs40.033 μs116.778 μs825.40 μs1.0261512 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.01025795.73 μs38.705 μs113.515 μs777.23 μs0.9830840 B0.50
AddAsync_One.NET 10.0.NET 10.0101001,956.89 μs110.355 μs309.447 μs1,920.38 μs1.0148256 B0.42
AddAsync_One.NET 8.0.NET 8.0101002,003.52 μs128.671 μs362.918 μs1,929.19 μs1.03113872 B1.00
AddAsync_One.NET 9.0.NET 9.0101002,343.06 μs204.133 μs588.970 μs2,146.71 μs1.2148168 B0.42
AddRangeAsync_Batch.NET 10.0.NET 10.0101009,244.06 μs447.286 μs1,268.876 μs9,088.38 μs0.991945960 B0.94
AddRangeAsync_Batch.NET 8.0.NET 8.0101009,638.87 μs609.352 μs1,748.346 μs9,232.94 μs1.032072784 B1.00
AddRangeAsync_Batch.NET 9.0.NET 9.0101009,990.38 μs683.347 μs2,004.137 μs9,130.29 μs1.071958328 B0.94
FindAsync_ByKey.NET 10.0.NET 10.01010013.87 μs1.091 μs3.112 μs13.50 μs0.98344 B0.91
FindAsync_ByKey.NET 8.0.NET 8.01010015.30 μs1.450 μs4.206 μs14.29 μs1.08376 B1.00
FindAsync_ByKey.NET 9.0.NET 9.01010014.91 μs1.344 μs3.899 μs14.50 μs1.05344 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.0101001,739.93 μs149.450 μs435.953 μs1,596.90 μs1.0937616 B0.37
UpdateAsync_Entity.NET 8.0.NET 8.0101001,639.99 μs97.008 μs272.021 μs1,613.04 μs1.03102568 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.0101001,519.22 μs94.605 μs268.380 μs1,468.98 μs0.9538432 B0.37
RemoveAsync_Entity.NET 10.0.NET 10.0101001,596.97 μs121.854 μs347.656 μs1,458.83 μs1.0328064 B0.30
RemoveAsync_Entity.NET 8.0.NET 8.0101001,599.43 μs108.603 μs302.742 μs1,556.06 μs1.0394216 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.0101001,432.88 μs96.036 μs266.116 μs1,373.12 μs0.9328112 B0.30
CountAsync_Filtered.NET 10.0.NET 10.010100787.15 μs40.391 μs115.890 μs769.62 μs0.9729784 B0.49
CountAsync_Filtered.NET 8.0.NET 8.010100826.43 μs37.358 μs107.186 μs806.67 μs1.0260704 B1.00
CountAsync_Filtered.NET 9.0.NET 9.010100888.35 μs55.179 μs158.318 μs857.10 μs1.0929840 B0.49
ExistsAsync_Filtered.NET 10.0.NET 10.010100797.40 μs40.927 μs118.736 μs793.58 μs1.0230360 B0.50
ExistsAsync_Filtered.NET 8.0.NET 8.010100799.83 μs40.133 μs113.850 μs772.96 μs1.0261088 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.010100811.29 μs42.949 μs125.961 μs790.04 μs1.0330696 B0.50
AddAsync_One.NET 10.0.NET 10.0100252,160.86 μs162.945 μs472.733 μs2,003.67 μs1.0648256 B0.43
AddAsync_One.NET 8.0.NET 8.0100252,099.33 μs130.409 μs374.167 μs2,013.75 μs1.03113136 B1.00
AddAsync_One.NET 9.0.NET 9.0100252,077.92 μs128.674 μs358.692 μs2,012.23 μs1.0248168 B0.43
AddRangeAsync_Batch.NET 10.0.NET 10.0100253,996.37 μs277.100 μs817.035 μs3,628.42 μs1.05503296 B0.83
AddRangeAsync_Batch.NET 8.0.NET 8.0100253,903.69 μs232.818 μs652.847 μs3,664.54 μs1.03608032 B1.00
AddRangeAsync_Batch.NET 9.0.NET 9.0100254,035.57 μs222.121 μs640.870 μs3,965.83 μs1.06504048 B0.83
FindAsync_ByKey.NET 10.0.NET 10.01002518.24 μs1.187 μs3.385 μs17.83 μs0.93344 B0.91
FindAsync_ByKey.NET 8.0.NET 8.01002520.49 μs1.365 μs3.938 μs20.21 μs1.04376 B1.00
FindAsync_ByKey.NET 9.0.NET 9.01002518.32 μs1.251 μs3.570 μs18.23 μs0.93344 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.0100252,217.59 μs164.981 μs476.008 μs2,111.17 μs1.1594160 B0.79
UpdateAsync_Entity.NET 8.0.NET 8.0100251,994.47 μs128.169 μs373.874 μs1,926.94 μs1.03118624 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.0100251,924.96 μs123.357 μs345.907 μs1,883.08 μs1.0093288 B0.79
RemoveAsync_Entity.NET 10.0.NET 10.0100251,916.96 μs136.692 μs394.389 μs1,823.96 μs1.0753280 B0.46
RemoveAsync_Entity.NET 8.0.NET 8.0100251,828.41 μs95.027 μs264.899 μs1,810.08 μs1.02115096 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.0100251,832.30 μs142.993 μs417.117 μs1,697.62 μs1.0253328 B0.46
CountAsync_Filtered.NET 10.0.NET 10.010025852.13 μs33.264 μs95.441 μs841.98 μs0.9429672 B0.32
CountAsync_Filtered.NET 8.0.NET 8.010025924.28 μs49.213 μs141.990 μs894.77 μs1.0293208 B1.00
CountAsync_Filtered.NET 9.0.NET 9.010025918.96 μs51.006 μs148.788 μs899.65 μs1.0229848 B0.32
ExistsAsync_Filtered.NET 10.0.NET 10.010025887.66 μs41.728 μs121.061 μs861.08 μs0.9930064 B0.49
ExistsAsync_Filtered.NET 8.0.NET 8.010025913.33 μs39.614 μs111.083 μs905.71 μs1.0161384 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.010025860.05 μs35.515 μs99.589 μs856.00 μs0.9530536 B0.50
AddAsync_One.NET 10.0.NET 10.01001002,044.21 μs109.533 μs308.941 μs1,951.52 μs0.9848256 B0.33
AddAsync_One.NET 8.0.NET 8.01001002,159.09 μs145.689 μs418.008 μs2,056.54 μs1.03146080 B1.00
AddAsync_One.NET 9.0.NET 9.01001002,033.15 μs109.041 μs303.963 μs1,955.98 μs0.9748168 B0.33
AddRangeAsync_Batch.NET 10.0.NET 10.01001008,923.90 μs385.828 μs1,075.533 μs8,579.75 μs1.032051320 B0.95
AddRangeAsync_Batch.NET 8.0.NET 8.01001008,767.16 μs333.883 μs930.732 μs8,626.17 μs1.012152208 B1.00
AddRangeAsync_Batch.NET 9.0.NET 9.01001009,275.75 μs651.276 μs1,847.562 μs8,896.58 μs1.072002400 B0.93
FindAsync_ByKey.NET 10.0.NET 10.010010018.36 μs1.183 μs3.468 μs17.87 μs0.91344 B0.91
FindAsync_ByKey.NET 8.0.NET 8.010010021.14 μs1.602 μs4.571 μs20.08 μs1.04376 B1.00
FindAsync_ByKey.NET 9.0.NET 9.010010018.74 μs1.266 μs3.654 μs18.25 μs0.93344 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.01001002,062.88 μs99.288 μs278.415 μs2,052.79 μs1.0694064 B0.62
UpdateAsync_Entity.NET 8.0.NET 8.01001002,012.51 μs123.890 μs357.452 μs1,943.19 μs1.03151168 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.01001001,915.64 μs98.960 μs277.493 μs1,886.75 μs0.9894240 B0.62
RemoveAsync_Entity.NET 10.0.NET 10.01001001,973.79 μs176.320 μs508.722 μs1,840.15 μs1.1552544 B0.46
RemoveAsync_Entity.NET 8.0.NET 8.01001001,756.71 μs102.416 μs283.793 μs1,720.37 μs1.02115096 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.01001001,768.38 μs107.550 μs305.102 μs1,711.67 μs1.0353328 B0.46
CountAsync_Filtered.NET 10.0.NET 10.0100100904.02 μs49.998 μs145.053 μs895.48 μs1.0429376 B0.31
CountAsync_Filtered.NET 8.0.NET 8.0100100881.99 μs32.093 μs90.518 μs865.90 μs1.0193504 B1.00
CountAsync_Filtered.NET 9.0.NET 9.0100100928.74 μs51.601 μs149.704 μs882.75 μs1.0629704 B0.32
ExistsAsync_Filtered.NET 10.0.NET 10.0100100880.07 μs45.484 μs129.031 μs856.48 μs0.9630496 B0.50
ExistsAsync_Filtered.NET 8.0.NET 8.0100100936.47 μs52.558 μs150.798 μs904.87 μs1.0261552 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.0100100867.71 μs32.480 μs94.230 μs843.17 μs0.9530648 B0.50
AddAsync_One.NET 10.0.NET 10.01000253,461.73 μs283.061 μs816.697 μs3,188.94 μs1.6048256 B0.33
AddAsync_One.NET 8.0.NET 8.01000252,222.72 μs131.802 μs369.586 μs2,157.38 μs1.02146664 B1.00
AddAsync_One.NET 9.0.NET 9.01000253,598.90 μs275.776 μs804.452 μs3,425.42 μs1.6647432 B0.32
AddRangeAsync_Batch.NET 10.0.NET 10.01000255,344.26 μs330.562 μs959.021 μs5,247.12 μs?502680 B?
AddRangeAsync_Batch.NET 8.0.NET 8.0100025NANANANA?NA?
AddRangeAsync_Batch.NET 9.0.NET 9.01000255,977.00 μs678.205 μs1,956.777 μs5,873.62 μs?506096 B?
FindAsync_ByKey.NET 10.0.NET 10.010002515.94 μs2.312 μs6.745 μs16.77 μs0.97320 B0.91
FindAsync_ByKey.NET 8.0.NET 8.010002518.32 μs2.009 μs5.893 μs19.02 μs1.11352 B1.00
FindAsync_ByKey.NET 9.0.NET 9.010002518.87 μs2.628 μs7.498 μs19.75 μs1.15320 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.01000254,136.83 μs407.648 μs1,122.782 μs4,165.69 μs1.08651440 B1.02
UpdateAsync_Entity.NET 8.0.NET 8.01000254,118.13 μs383.339 μs1,093.688 μs3,942.08 μs1.07636848 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.01000253,752.35 μs321.520 μs922.502 μs3,562.38 μs0.98639600 B1.00
RemoveAsync_Entity.NET 10.0.NET 10.01000253,751.26 μs314.620 μs907.750 μs3,762.21 μs0.89296840 B1.02
RemoveAsync_Entity.NET 8.0.NET 8.01000254,471.61 μs397.118 μs1,087.105 μs4,274.85 μs1.06290184 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.01000253,272.87 μs293.774 μs852.291 μs3,156.54 μs0.77297920 B1.03
CountAsync_Filtered.NET 10.0.NET 10.01000251,130.67 μs109.729 μs305.879 μs1,051.44 μs1.0129000 B0.48
CountAsync_Filtered.NET 8.0.NET 8.01000251,142.16 μs53.010 μs153.793 μs1,114.00 μs1.0260424 B1.00
CountAsync_Filtered.NET 9.0.NET 9.01000251,447.91 μs125.349 μs363.660 μs1,333.29 μs1.2929416 B0.49
ExistsAsync_Filtered.NET 10.0.NET 10.0100025835.79 μs47.695 μs131.367 μs824.92 μs0.8629504 B0.31
ExistsAsync_Filtered.NET 8.0.NET 8.0100025984.94 μs37.935 μs108.843 μs967.75 μs1.0194496 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.01000251,255.06 μs100.662 μs287.193 μs1,149.25 μs1.2930184 B0.32
AddAsync_One.NET 10.0.NET 10.010001003,649.03 μs304.559 μs888.412 μs3,454.46 μs1.7847520 B0.42
AddAsync_One.NET 8.0.NET 8.010001002,084.59 μs102.731 μs282.950 μs2,028.60 μs1.02113872 B1.00
AddAsync_One.NET 9.0.NET 9.010001002,284.82 μs160.384 μs465.302 μs2,151.42 μs1.1148168 B0.42
AddRangeAsync_Batch.NET 10.0.NET 10.0100010013,662.14 μs1,595.532 μs4,577.881 μs12,502.58 μs1.382065336 B0.96
AddRangeAsync_Batch.NET 8.0.NET 8.0100010010,342.38 μs828.223 μs2,415.964 μs9,518.90 μs1.052157944 B1.00
AddRangeAsync_Batch.NET 9.0.NET 9.0100010011,452.48 μs916.238 μs2,599.216 μs11,051.25 μs1.162000608 B0.93
FindAsync_ByKey.NET 10.0.NET 10.0100010018.52 μs3.217 μs9.332 μs18.48 μs0.93320 B0.91
FindAsync_ByKey.NET 8.0.NET 8.0100010022.68 μs2.759 μs8.090 μs22.54 μs1.14352 B1.00
FindAsync_ByKey.NET 9.0.NET 9.0100010017.42 μs1.970 μs5.777 μs19.13 μs0.88320 B0.91
UpdateAsync_Entity.NET 10.0.NET 10.010001002,823.91 μs263.932 μs735.738 μs2,495.62 μs1.18651144 B0.97
UpdateAsync_Entity.NET 8.0.NET 8.010001002,579.17 μs270.102 μs774.973 μs2,281.25 μs1.08670376 B1.00
UpdateAsync_Entity.NET 9.0.NET 9.010001002,553.18 μs243.913 μs699.831 μs2,319.58 μs1.07651160 B0.97
RemoveAsync_Entity.NET 10.0.NET 10.010001002,471.74 μs233.533 μs658.685 μs2,217.44 μs1.13297576 B0.92
RemoveAsync_Entity.NET 8.0.NET 8.010001002,279.44 μs168.950 μs482.025 μs2,148.17 μs1.04323416 B1.00
RemoveAsync_Entity.NET 9.0.NET 9.010001002,378.43 μs223.172 μs651.004 μs2,249.31 μs1.09296888 B0.92
CountAsync_Filtered.NET 10.0.NET 10.010001001,047.55 μs41.239 μs116.315 μs1,032.90 μs0.9029000 B0.31
CountAsync_Filtered.NET 8.0.NET 8.010001001,185.98 μs56.352 μs161.684 μs1,159.71 μs1.0293216 B1.00
CountAsync_Filtered.NET 9.0.NET 9.010001001,104.04 μs44.933 μs124.510 μs1,102.67 μs0.9529416 B0.32
ExistsAsync_Filtered.NET 10.0.NET 10.01000100942.81 μs49.105 μs139.304 μs901.81 μs0.9029392 B0.31
ExistsAsync_Filtered.NET 8.0.NET 8.010001001,060.89 μs44.064 μs121.366 μs1,033.85 μs1.0193968 B1.00
ExistsAsync_Filtered.NET 9.0.NET 9.010001001,050.13 μs47.664 μs135.216 μs1,022.71 μs1.0030104 B0.32

Benchmarks with issues: EfRepositoryBenchmarks.AddRangeAsync_Batch: .NET 8.0(Runtime=.NET 8.0, InvocationCount=1, UnrollFactor=1) [EntityCount=1000, BatchSize=25]