Skip to content

Performance

Johelvis Guzman edited this page Aug 16, 2019 · 6 revisions

The benchmark can be found in DotNetToolkit.Repository.Performance and can be compiled via:

dotnet build DotNetToolkit.Repository.Performance.csproj --configuration Release
dotnet run DotNetToolkit.Repository.Performance.csproj --configuration Release --filter *

Output from the latest run is:

BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17134.950 (1803/April2018Update/Redstone4)
Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
Frequency=2742186 Hz, Resolution=364.6726 ns, Timer=TSC
  [Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3416.0

Provider Method Mean Rank
AdoNet AddRange 1.213 ms 1
EntityFrameworkCore AddRange 1.867 ms 2
EntityFramework AddRange 2.022 ms 3
Json AddRange 2.199 ms 4
Xml Add 2.688 ms 5
Xml AddRange 2.854 ms 6
NHibernate AddRange 3.078 ms 7
InMemory AddRange 3.250 ms 8
AzureStorageTable AddRange 19.034 ms 9
AdoNet Add 20.383 ms 10
AzureStorageBlob AddRange 27.733 ms 11
InMemory Add 44.170 ms 12
NHibernate Add 116.914 ms 13
Json Add 203.497 ms 14
AzureStorageTable Add 715.698 ms 15
AzureStorageBlob Add 754.095 ms 16
EntityFrameworkCore Add 833.927 ms 17
EntityFramework Add 2,380.657 ms 18
AdoNet Delete 1.136 ms 1
NHibernate DeleteRange 1.713 ms 2
AdoNet DeleteRange 1.794 ms 3
InMemory DeleteRange 1.892 ms 4
InMemory Delete 2.127 ms 5
Json DeleteRange 2.204 ms 6
EntityFramework DeleteRange 2.252 ms 7
AdoNet DeleteWithPredicate 2.267 ms 7
Xml DeleteRange 2.428 ms 8
Xml Delete 2.476 ms 9
EntityFrameworkCore Delete 2.757 ms 10
NHibernate Delete 2.795 ms 11
EntityFramework Delete 2.998 ms 12
Json Delete 3.040 ms 13
EntityFrameworkCore DeleteRange 3.621 ms 14
Xml DeleteWithId 4.336 ms 15
InMemory DeleteWithPredicate 4.430 ms 16
EntityFrameworkCore DeleteWithId 4.437 ms 16
EntityFramework DeleteWithId 5.168 ms 17
InMemory DeleteWithId 5.408 ms 18
AdoNet DeleteWithId 6.277 ms 19
Json DeleteWithPredicate 6.502 ms 20
Xml DeleteWithPredicate 7.310 ms 21
Json DeleteWithId 8.463 ms 22
NHibernate DeleteWithPredicate 8.553 ms 23
EntityFramework DeleteWithPredicate 12.002 ms 24
EntityFrameworkCore DeleteWithPredicate 12.638 ms 25
AzureStorageTable Delete 18.202 ms 26
AzureStorageBlob DeleteRange 20.020 ms 27
NHibernate DeleteWithId 21.496 ms 28
AzureStorageTable DeleteRange 22.016 ms 29
AzureStorageBlob Delete 26.045 ms 30
AzureStorageTable DeleteWithPredicate 36.653 ms 31
AzureStorageTable DeleteWithId 51.586 ms 32
AzureStorageBlob DeleteWithId 65.582 ms 33
AzureStorageBlob DeleteWithPredicate 127.062 ms 34
AdoNet UpdateRange 1.454 ms 1
EntityFramework UpdateRange 1.595 ms 2
NHibernate UpdateRange 1.990 ms 3
Json UpdateRange 2.517 ms 4
Xml UpdateRange 2.525 ms 4
Xml Update 2.664 ms 5
InMemory Update 2.794 ms 6
EntityFrameworkCore UpdateRange 2.814 ms 6
InMemory UpdateRange 3.102 ms 7
Json Update 3.751 ms 8
AdoNet Update 4.993 ms 9
EntityFrameworkCore Update 7.338 ms 10
EntityFramework Update 12.206 ms 11
NHibernate Update 20.397 ms 12
AzureStorageTable UpdateRange 26.203 ms 13
AzureStorageTable Update 30.637 ms 14
AzureStorageBlob UpdateRange 55.611 ms 15
AzureStorageBlob Update 70.262 ms 16
AdoNet GroupByWithPagingOptions 2.157 ms 1
EntityFrameworkCore GroupByWithPagingOptions 2.898 ms 2
EntityFramework GroupByWithPagingOptions 3.050 ms 3
EntityFramework GroupByWithPredicateOptions 3.698 ms 4
Xml GroupByWithPagingOptions 4.393 ms 5
InMemory GroupByWithPagingOptions 4.479 ms 6
Json GroupByWithPagingOptions 4.594 ms 7
Xml GroupByWithPredicateOptions 4.749 ms 8
AdoNet GroupByWithPredicateOptions 4.839 ms 9
Json GroupByWithPredicateOptions 5.108 ms 10
EntityFrameworkCore GroupByWithPredicateOptions 7.594 ms 11
NHibernate GroupByWithPagingOptions 8.452 ms 12
NHibernate GroupByWithPredicateOptions 8.795 ms 13
InMemory GroupByWithPredicateOptions 11.145 ms 14
AzureStorageTable GroupByWithPredicateOptions 18.445 ms 15
AzureStorageTable GroupByWithPagingOptions 21.733 ms 16
AzureStorageBlob GroupByWithPagingOptions 99.966 ms 17
AzureStorageBlob GroupByWithPredicateOptions 102.526 ms 18
AdoNet ToDictionaryWithPagingOptions 2.457 ms 1
EntityFramework ToDictionaryWithPagingOptions 2.537 ms 2
EntityFramework ToDictionaryWithPredicateOptions 2.755 ms 3
EntityFrameworkCore ToDictionaryWithPredicateOptions 2.937 ms 4
EntityFrameworkCore ToDictionaryWithPagingOptions 2.987 ms 5
InMemory ToDictionaryWithPagingOptions 3.873 ms 6
Json ToDictionaryWithPredicateOptions 4.072 ms 7
Json ToDictionaryWithPagingOptions 4.811 ms 8
Xml ToDictionaryWithPredicateOptions 4.930 ms 9
Xml ToDictionaryWithPagingOptions 5.144 ms 10
NHibernate ToDictionaryWithPagingOptions 7.785 ms 11
NHibernate ToDictionaryWithPredicateOptions 8.989 ms 12
AdoNet ToDictionaryWithPredicateOptions 10.088 ms 13
InMemory ToDictionaryWithPredicateOptions 11.123 ms 14
AzureStorageTable ToDictionaryWithPredicateOptions 18.495 ms 15
AzureStorageTable ToDictionaryWithPagingOptions 20.753 ms 16
AzureStorageBlob ToDictionaryWithPredicateOptions 97.967 ms 17
AzureStorageBlob ToDictionaryWithPagingOptions 100.347 ms 18
NHibernate FindWithPredicateOptions NA ?
NHibernate FindWithPagingOptions NA ?
AdoNet FindAllWithPredicate 1.450 ms 1
EntityFramework FindWithPagingOptions 1.543 ms 2
InMemory FindWithId 1.579 ms 3
AdoNet FindWithId 1.687 ms 4
AdoNet FindAllWithPredicateOptions 1.765 ms 5
AdoNet FindAllWithPagingOptions 1.943 ms 6
EntityFramework FindWithId 2.136 ms 7
AdoNet FindWithPagingOptions 2.255 ms 8
EntityFrameworkCore FindWithId 2.534 ms 9
InMemory FindWithPagingOptions 2.559 ms 9
EntityFrameworkCore FindWithPagingOptions 2.601 ms 10
EntityFramework FindAllWithPagingOptions 2.984 ms 11
Json FindWithId 3.043 ms 12
InMemory FindAllWithPredicateOptions 3.092 ms 13
InMemory FindAllWithPagingOptions 3.162 ms 14
Xml FindWithPagingOptions 3.219 ms 15
Json FindWithPredicateOptions 3.286 ms 16
Xml FindWithId 3.339 ms 17
InMemory FindWithPredicateOptions 3.394 ms 18
Xml FindWithPredicateOptions 3.752 ms 19
Json FindAllWithPagingOptions 3.929 ms 20
Json FindWithPredicate 3.959 ms 20
Json FindWithPagingOptions 4.039 ms 21
AdoNet FindWithPredicateOptions 4.114 ms 22
EntityFramework FindWithPredicate 4.289 ms 23
EntityFramework FindAllWithPredicateOptions 4.378 ms 24
EntityFramework FindAllWithPredicate 4.438 ms 25
Json FindAllWithPredicateOptions 4.502 ms 26
NHibernate FindWithId 4.654 ms 27
Xml FindAllWithPagingOptions 4.693 ms 27
Json FindAllWithPredicate 4.838 ms 28
Xml FindAllWithPredicateOptions 5.005 ms 29
InMemory FindAllWithPredicate 5.322 ms 30
AdoNet FindWithPredicate 6.442 ms 31
NHibernate FindAllWithPredicate 7.595 ms 32
InMemory FindWithPredicate 7.758 ms 33
EntityFrameworkCore FindAllWithPredicateOptions 8.867 ms 34
NHibernate FindAllWithPagingOptions 9.386 ms 35
Xml FindWithPredicate 9.484 ms 36
Xml FindAllWithPredicate 11.586 ms 37
NHibernate FindWithPredicate 11.849 ms 38
EntityFrameworkCore FindAllWithPredicate 11.948 ms 38
EntityFrameworkCore FindAllWithPagingOptions 12.221 ms 39
EntityFramework FindWithPredicateOptions 13.004 ms 40
NHibernate FindAllWithPredicateOptions 13.726 ms 41
AzureStorageTable FindWithId 16.209 ms 42
AzureStorageTable FindWithPredicate 18.133 ms 43
AzureStorageTable FindWithPagingOptions 19.026 ms 44
AzureStorageTable FindAllWithPredicateOptions 19.321 ms 45
AzureStorageTable FindWithPredicateOptions 19.496 ms 45
AzureStorageTable FindAllWithPredicate 19.821 ms 46
AzureStorageTable FindAllWithPagingOptions 20.200 ms 47
EntityFrameworkCore FindWithPredicate 30.977 ms 48
AzureStorageBlob FindWithId 32.358 ms 49
EntityFrameworkCore FindWithPredicateOptions 34.177 ms 50
AzureStorageBlob FindWithPredicateOptions 53.437 ms 51
AzureStorageBlob FindWithPagingOptions 53.897 ms 51
AzureStorageBlob FindWithPredicate 86.452 ms 52
AzureStorageBlob FindAllWithPagingOptions 98.236 ms 53
AzureStorageBlob FindAllWithPredicate 101.248 ms 54
AzureStorageBlob FindAllWithPredicateOptions 127.240 ms 55

Benchmarks with issues: Repository_Find_Benchmarks.FindWithPredicateOptions: Dry(Force=True, Toolchain=InProcessToolchain, IterationCount=1, LaunchCount=1, RunStrategy=ColdStart, UnrollFactor=1, WarmupCount=1) [Provider=NHibernate] Repository_Find_Benchmarks.FindWithPagingOptions: Dry(Force=True, Toolchain=InProcessToolchain, IterationCount=1, LaunchCount=1, RunStrategy=ColdStart, UnrollFactor=1, WarmupCount=1) [Provider=NHibernate]

Clone this wiki locally