-
Notifications
You must be signed in to change notification settings - Fork 5
Performance
Johelvis Guzman edited this page Jun 13, 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.706 (1803/April2018Update/Redstone4)
Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
Frequency=2742188 Hz, Resolution=364.6723 ns, Timer=TSC
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3394.0
Provider | Method | Mean | Rank |
---|---|---|---|
AdoNet | AddRange | 3.459 ms | 1 |
Xml | Add | 3.726 ms | 2 |
InMemory | AddRange | 3.986 ms | 3 |
EntityFramework | AddRange | 4.022 ms | 3 |
NHibernate | AddRange | 4.154 ms | 4 |
Xml | AddRange | 4.471 ms | 5 |
Json | AddRange | 4.493 ms | 5 |
EntityFrameworkCore | AddRange | 11.494 ms | 6 |
InMemory | Add | 23.090 ms | 7 |
AdoNet | Add | 23.570 ms | 8 |
NHibernate | Add | 120.683 ms | 9 |
Json | Add | 198.062 ms | 10 |
EntityFrameworkCore | Add | 897.262 ms | 11 |
EntityFramework | Add | 2,614.185 ms | 12 |
AdoNet | UpdateRange | 2.932 ms | 1 |
NHibernate | UpdateRange | 3.091 ms | 2 |
InMemory | Update | 3.500 ms | 3 |
InMemory | UpdateRange | 3.637 ms | 4 |
Json | UpdateRange | 4.133 ms | 5 |
Xml | Update | 4.306 ms | 6 |
EntityFramework | UpdateRange | 4.439 ms | 7 |
Xml | UpdateRange | 4.518 ms | 8 |
Json | Update | 5.219 ms | 9 |
AdoNet | Update | 6.593 ms | 10 |
EntityFrameworkCore | UpdateRange | 6.959 ms | 11 |
EntityFrameworkCore | Update | 10.266 ms | 12 |
EntityFramework | Update | 10.435 ms | 13 |
NHibernate | Update | 21.065 ms | 14 |
InMemory | DeleteRange | 1.456 ms | 1 |
InMemory | Delete | 2.001 ms | 2 |
NHibernate | Delete | 2.808 ms | 3 |
NHibernate | DeleteRange | 2.890 ms | 4 |
AdoNet | DeleteRange | 3.281 ms | 5 |
AdoNet | Delete | 3.405 ms | 6 |
Json | DeleteRange | 3.652 ms | 7 |
Xml | Delete | 3.901 ms | 8 |
Xml | DeleteWithId | 4.197 ms | 9 |
Json | Delete | 4.841 ms | 10 |
AdoNet | DeleteWithPredicate | 4.922 ms | 11 |
EntityFramework | Delete | 5.213 ms | 12 |
Xml | DeleteRange | 5.461 ms | 13 |
InMemory | DeleteWithPredicate | 6.621 ms | 14 |
InMemory | DeleteWithId | 6.887 ms | 15 |
EntityFramework | DeleteRange | 7.304 ms | 16 |
Json | DeleteWithPredicate | 8.693 ms | 17 |
Xml | DeleteWithPredicate | 8.700 ms | 17 |
Json | DeleteWithId | 9.776 ms | 18 |
NHibernate | DeleteWithPredicate | 9.826 ms | 18 |
EntityFramework | DeleteWithId | 10.061 ms | 19 |
AdoNet | DeleteWithId | 10.348 ms | 20 |
EntityFrameworkCore | Delete | 11.120 ms | 21 |
EntityFrameworkCore | DeleteRange | 12.608 ms | 22 |
EntityFrameworkCore | DeleteWithId | 22.767 ms | 23 |
EntityFramework | DeleteWithPredicate | 23.335 ms | 24 |
NHibernate | DeleteWithId | 23.741 ms | 25 |
EntityFrameworkCore | DeleteWithPredicate | 28.458 ms | 26 |
NHibernate | FindWithPredicateOptions | NA | ? |
NHibernate | FindWithPagingOptions | NA | ? |
InMemory | FindWithId | 1.054 ms | 1 |
InMemory | FindWithPagingOptions | 2.189 ms | 2 |
Xml | FindWithId | 2.611 ms | 3 |
Xml | FindWithPredicateOptions | 2.645 ms | 4 |
AdoNet | FindWithId | 3.041 ms | 5 |
AdoNet | FindAllWithPredicateOptions | 3.180 ms | 6 |
InMemory | FindAllWithPredicateOptions | 3.536 ms | 7 |
Xml | FindWithPagingOptions | 3.604 ms | 8 |
InMemory | FindAllWithPagingOptions | 3.673 ms | 9 |
Json | FindWithPredicateOptions | 3.739 ms | 10 |
Json | FindWithPagingOptions | 3.756 ms | 10 |
AdoNet | FindAllWithPagingOptions | 3.768 ms | 10 |
InMemory | FindWithPredicateOptions | 3.792 ms | 10 |
Json | FindAllWithPredicateOptions | 4.338 ms | 11 |
Json | FindWithId | 4.368 ms | 11 |
EntityFramework | FindAllWithPagingOptions | 4.432 ms | 12 |
EntityFramework | FindWithPagingOptions | 4.570 ms | 13 |
AdoNet | FindAllWithPredicate | 4.850 ms | 14 |
AdoNet | FindWithPredicateOptions | 5.103 ms | 15 |
EntityFramework | FindWithPredicate | 5.164 ms | 16 |
AdoNet | FindWithPagingOptions | 5.198 ms | 16 |
EntityFrameworkCore | FindWithPagingOptions | 5.223 ms | 16 |
Json | FindAllWithPredicate | 5.227 ms | 16 |
EntityFramework | FindWithId | 5.682 ms | 17 |
AdoNet | FindWithPredicate | 5.936 ms | 18 |
NHibernate | FindWithId | 5.972 ms | 18 |
Xml | FindAllWithPredicate | 6.006 ms | 18 |
EntityFramework | FindAllWithPredicate | 6.013 ms | 18 |
InMemory | FindAllWithPredicate | 6.078 ms | 19 |
Json | FindWithPredicate | 6.096 ms | 19 |
Xml | FindAllWithPagingOptions | 6.438 ms | 20 |
Xml | FindWithPredicate | 6.461 ms | 20 |
Xml | FindAllWithPredicateOptions | 6.733 ms | 21 |
Json | FindAllWithPagingOptions | 6.739 ms | 21 |
EntityFramework | FindAllWithPredicateOptions | 7.470 ms | 22 |
NHibernate | FindAllWithPredicate | 8.236 ms | 23 |
EntityFrameworkCore | FindWithId | 9.091 ms | 24 |
InMemory | FindWithPredicate | 9.737 ms | 25 |
EntityFrameworkCore | FindAllWithPagingOptions | 11.269 ms | 26 |
NHibernate | FindAllWithPagingOptions | 12.250 ms | 27 |
EntityFramework | FindWithPredicateOptions | 13.536 ms | 28 |
NHibernate | FindWithPredicate | 14.089 ms | 29 |
NHibernate | FindAllWithPredicateOptions | 14.548 ms | 30 |
EntityFrameworkCore | FindAllWithPredicateOptions | 17.112 ms | 31 |
EntityFrameworkCore | FindAllWithPredicate | 25.494 ms | 32 |
EntityFrameworkCore | FindWithPredicateOptions | 48.432 ms | 33 |
EntityFrameworkCore | FindWithPredicate | 71.435 ms | 34 |
InMemory | GroupByWithPagingOptions | 3.668 ms | 1 |
Json | GroupByWithPagingOptions | 4.332 ms | 2 |
Xml | GroupByWithPagingOptions | 4.861 ms | 3 |
AdoNet | GroupByWithPagingOptions | 5.227 ms | 4 |
EntityFramework | GroupByWithPagingOptions | 5.258 ms | 4 |
AdoNet | GroupByWithPredicateOptions | 5.374 ms | 5 |
Json | GroupByWithPredicateOptions | 5.594 ms | 6 |
Xml | GroupByWithPredicateOptions | 5.664 ms | 7 |
EntityFramework | GroupByWithPredicateOptions | 7.029 ms | 8 |
NHibernate | GroupByWithPagingOptions | 9.915 ms | 9 |
NHibernate | GroupByWithPredicateOptions | 10.711 ms | 10 |
EntityFrameworkCore | GroupByWithPagingOptions | 11.252 ms | 11 |
InMemory | GroupByWithPredicateOptions | 11.762 ms | 12 |
EntityFrameworkCore | GroupByWithPredicateOptions | 24.369 ms | 13 |
InMemory | ToDictionaryWithPagingOptions | 4.163 ms | 1 |
Json | ToDictionaryWithPagingOptions | 4.754 ms | 2 |
Xml | ToDictionaryWithPagingOptions | 5.092 ms | 3 |
Json | ToDictionaryWithPredicateOptions | 5.237 ms | 4 |
Xml | ToDictionaryWithPredicateOptions | 5.617 ms | 5 |
AdoNet | ToDictionaryWithPagingOptions | 6.396 ms | 6 |
EntityFramework | ToDictionaryWithPagingOptions | 6.847 ms | 7 |
EntityFramework | ToDictionaryWithPredicateOptions | 7.761 ms | 8 |
InMemory | ToDictionaryWithPredicateOptions | 10.455 ms | 9 |
EntityFrameworkCore | ToDictionaryWithPredicateOptions | 11.244 ms | 10 |
NHibernate | ToDictionaryWithPredicateOptions | 11.656 ms | 11 |
NHibernate | ToDictionaryWithPagingOptions | 12.259 ms | 12 |
EntityFrameworkCore | ToDictionaryWithPagingOptions | 12.366 ms | 12 |
AdoNet | ToDictionaryWithPredicateOptions | 12.885 ms | 13 |
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]