-
Notifications
You must be signed in to change notification settings - Fork 5
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]