Eugene Sadovoi 2019-06-20 20:51:49 -04:00
Родитель 8ac72192e0 639e7123fe
Коммит 54337f51d1
1 изменённых файлов: 26 добавлений и 58 удалений

Просмотреть файл

@ -2,64 +2,32 @@ This project uses [BenchmarkDotNet](http://benchmarkdotnet.org/) to compare perf
``` ini
BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726)
Processor=Intel Core i7-6700K CPU 4.00GHz (Skylake), ProcessorCount=8
Frequency=3914064 Hz, Resolution=255.4889 ns, Timer=TSC
[Host] : .NET Framework 4.6 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2115.0
DefaultJob : .NET Framework 4.6 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2115.0
BenchmarkDotNet=v0.11.3, OS=Windows 10.0.17134.523 (1803/April2018Update/Redstone4)
Intel Core i7-6700K CPU 4.00GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
Frequency=3914058 Hz, Resolution=255.4893 ns, Timer=TSC
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3260.0
Job-NIEANE : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3260.0
InvocationCount=100000 LaunchCount=1 RunStrategy=Throughput
```
# Basic
| Method | Version | Mean | Error | StdDev |
|------------------------------------ |--------- |------------:|-----------:|-----------:|
| Container.Resolve<Container>() | Unity.V4 | 458.2 ns | 2.415 ns | 2.016 ns |
| Container.Resolve<Container>() | Unity.V5 | 737.9 ns | 10.072 ns | 9.421 ns |
| `Container.Resolve<Container>()` | Unity.V6 | 479.4 ns | 8.566 ns | 7.593 ns |
| ``Container.Resolve<Container>()`` | VS_MEF | 2,814.9 ns | 14.542 ns | 13.602 ns |
| 'new Container()' | Unity.V4 | 6,489.4 ns | 55.737 ns | 52.137 ns |
| 'new Container()' | Unity.V5 | 3,370.8 ns | 12.191 ns | 10.180 ns |
| 'new Container()' | Unity.V6 | 3,462.3 ns | 24.325 ns | 20.313 ns |
| 'new Container()' | VS_MEF | 57,311.7 ns | 349.694 ns | 327.104 ns |
| 'using(var uc = new Container()){}' | Unity.V4 | 6,828.1 ns | 97.852 ns | 91.531 ns |
| 'using(var uc = new Container()){}' | Unity.V5 | 3,641.0 ns | 54.798 ns | 51.258 ns |
| 'using(var uc = new Container()){}' | Unity.V6 | 3,712.5 ns | 24.850 ns | 20.751 ns |
| 'using(var uc = new Container()){}' | VS_MEF | 58,291.3 ns | 582.364 ns | 544.744 ns |
# Registration
| Method | Version | Mean | Error | StdDev |
|------------------------------------------ |--------- |-----------:|----------:|-----------:|
| 'Register Named Type (Singleton)' | Unity.V4 | 1,266.3 ns | 10.676 ns | 9.4644 ns |
| 'Register Named Type (Singleton)' | Unity.V5 | 797.0 ns | 8.250 ns | 7.7173 ns |
| 'Register Named Type (Singleton)' | Unity.V6 | 785.8 ns | 15.428 ns | 18.9474 ns |
| 'Register Named Type (Singleton)' | VS_MEF | NA | NA | NA |
| 'Register Named Type Mapping (Singleton)' | Unity.V4 | 2,231.8 ns | 5.173 ns | 4.8387 ns |
| 'Register Named Type Mapping (Singleton)' | Unity.V5 | 975.5 ns | 4.871 ns | 4.5559 ns |
| 'Register Named Type Mapping (Singleton)' | Unity.V6 | 928.4 ns | 3.146 ns | 2.9432 ns |
| 'Register Named Type Mapping (Singleton)' | VS_MEF | NA | NA | NA |
| 'Register Named Type Mapping' | Unity.V4 | 1,048.3 ns | 14.301 ns | 13.3769 ns |
| 'Register Named Type Mapping' | Unity.V5 | 525.5 ns | 1.244 ns | 0.8993 ns |
| 'Register Named Type Mapping' | Unity.V6 | 592.1 ns | 1.191 ns | 1.0558 ns |
| 'Register Named Type Mapping' | VS_MEF | NA | NA | NA |
| 'Register Named Type' | Unity.V4 | 213.4 ns | 1.860 ns | 1.7395 ns |
| 'Register Named Type' | Unity.V5 | 351.7 ns | 3.796 ns | 3.5511 ns |
| 'Register Named Type' | Unity.V6 | 327.7 ns | 1.702 ns | 1.5083 ns |
| 'Register Named Type' | VS_MEF | NA | NA | NA |
| 'Register Type (Singleton)' | Unity.V4 | 1,250.3 ns | 7.761 ns | 7.2592 ns |
| 'Register Type (Singleton)' | Unity.V5 | 772.4 ns | 14.011 ns | 13.1062 ns |
| 'Register Type (Singleton)' | Unity.V6 | 769.6 ns | 9.400 ns | 7.8498 ns |
| 'Register Type (Singleton)' | VS_MEF | NA | NA | NA |
| 'Register Type Mapping (Singleton)' | Unity.V4 | 2,172.8 ns | 12.255 ns | 11.4635 ns |
| 'Register Type Mapping (Singleton)' | Unity.V5 | 954.3 ns | 18.295 ns | 17.9685 ns |
| 'Register Type Mapping (Singleton)' | Unity.V6 | 899.3 ns | 14.865 ns | 13.9049 ns |
| 'Register Type Mapping (Singleton)' | VS_MEF | NA | NA | NA |
| 'Register Type Mapping' | Unity.V4 | 1,022.7 ns | 4.795 ns | 4.4853 ns |
| 'Register Type Mapping' | Unity.V5 | 491.9 ns | 2.977 ns | 2.6387 ns |
| 'Register Type Mapping' | Unity.V6 | 483.1 ns | 1.269 ns | 1.1252 ns |
| 'Register Type Mapping' | VS_MEF | NA | NA | NA |
| 'Register Type' | Unity.V4 | 193.9 ns | 2.441 ns | 2.2837 ns |
| 'Register Type' | Unity.V5 | 313.6 ns | 3.451 ns | 3.2280 ns |
| 'Register Type' | Unity.V6 | 353.1 ns | 1.980 ns | 1.6531 ns |
| 'Register Type' | VS_MEF | NA | NA | NA |
| Method | Version | Mean | Error | StdDev |
|------------- |--------- |------------:|-----------:|-----------:|
| **Singleton** | **4.0.1** | **455.53 ns** | **4.3610 ns** | **4.0793 ns** |
| Unregistered | 4.0.1 | 893.14 ns | 3.9070 ns | 3.6546 ns |
| Transient | 4.0.1 | 906.03 ns | 4.0031 ns | 3.5487 ns |
| Mapping | 4.0.1 | 776.70 ns | 2.3000 ns | 2.1514 ns |
| Array | 4.0.1 | 8,725.32 ns | 36.1246 ns | 33.7909 ns |
| Enumerable | 4.0.1 | NA | NA | NA |
| **Singleton** | **5.8.13** | **127.87 ns** | **0.9838 ns** | **0.9203 ns** |
| Unregistered | 5.8.13 | 128.18 ns | 1.2329 ns | 1.1532 ns |
| Transient | 5.8.13 | 143.36 ns | 1.7001 ns | 1.5071 ns |
| Mapping | 5.8.13 | 141.33 ns | 1.4194 ns | 1.3278 ns |
| Array | 5.8.13 | 642.21 ns | 4.4079 ns | 3.9075 ns |
| Enumerable | 5.8.13 | 739.89 ns | 3.5254 ns | 3.2977 ns |
| **Singleton** | **5.9.0** | **76.19 ns** | **0.8752 ns** | **0.8187 ns** |
| Unregistered | 5.9.0 | 88.37 ns | 0.8162 ns | 0.7635 ns |
| Transient | 5.9.0 | 96.90 ns | 1.3002 ns | 1.1526 ns |
| Mapping | 5.9.0 | 122.58 ns | 2.4451 ns | 2.4014 ns |
| Array | 5.9.0 | 605.97 ns | 5.6593 ns | 5.2937 ns |
| Enumerable | 5.9.0 | 669.90 ns | 5.6207 ns | 4.6935 ns |