-
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]