This commit is contained in:
Eugene Sadovoi 2017-11-17 12:19:02 -05:00
Родитель 42ae3db623
Коммит 4977918901
12 изменённых файлов: 212 добавлений и 0 удалений

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

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>

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

@ -0,0 +1,9 @@
using System;
namespace Benchmark.Abstractions
{
public abstract class UnityAdapterBase
{
public abstract void CreateContainer();
}
}

49
Benchmarks.sln Normal file
Просмотреть файл

@ -0,0 +1,49 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27004.2009
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Runner", "Runner\Runner.csproj", "{1614A6A2-D722-4CD0-AB17-91E582B3B5FC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.V4.Adapter", "Unity.V4.Adapter\Unity.V4.Adapter.csproj", "{3DB49868-C3F8-4411-B60C-E25F6F00F42C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.V5.Adapter", "Unity.V5.Adapter\Unity.V5.Adapter.csproj", "{2EBCEBCB-6611-4C61-B829-85E0359DF880}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.V6.Adapter", "Unity.V6.Adapter\Unity.V6.Adapter.csproj", "{68552D99-2256-4AC6-BFD6-A40A18211819}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmark.Abstractions", "Benchmark.Abstractions\Benchmark.Abstractions.csproj", "{78880FC1-D5BF-4A59-901D-5EBB702CCC93}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1614A6A2-D722-4CD0-AB17-91E582B3B5FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1614A6A2-D722-4CD0-AB17-91E582B3B5FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1614A6A2-D722-4CD0-AB17-91E582B3B5FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1614A6A2-D722-4CD0-AB17-91E582B3B5FC}.Release|Any CPU.Build.0 = Release|Any CPU
{3DB49868-C3F8-4411-B60C-E25F6F00F42C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DB49868-C3F8-4411-B60C-E25F6F00F42C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DB49868-C3F8-4411-B60C-E25F6F00F42C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DB49868-C3F8-4411-B60C-E25F6F00F42C}.Release|Any CPU.Build.0 = Release|Any CPU
{2EBCEBCB-6611-4C61-B829-85E0359DF880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2EBCEBCB-6611-4C61-B829-85E0359DF880}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2EBCEBCB-6611-4C61-B829-85E0359DF880}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2EBCEBCB-6611-4C61-B829-85E0359DF880}.Release|Any CPU.Build.0 = Release|Any CPU
{68552D99-2256-4AC6-BFD6-A40A18211819}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68552D99-2256-4AC6-BFD6-A40A18211819}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68552D99-2256-4AC6-BFD6-A40A18211819}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68552D99-2256-4AC6-BFD6-A40A18211819}.Release|Any CPU.Build.0 = Release|Any CPU
{78880FC1-D5BF-4A59-901D-5EBB702CCC93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78880FC1-D5BF-4A59-901D-5EBB702CCC93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78880FC1-D5BF-4A59-901D-5EBB702CCC93}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78880FC1-D5BF-4A59-901D-5EBB702CCC93}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F12FC46A-FED6-408A-B7E4-EE6255667778}
EndGlobalSection
EndGlobal

13
Runner/Program.cs Normal file
Просмотреть файл

@ -0,0 +1,13 @@
using System;
using BenchmarkDotNet.Running;
namespace Runner
{
class Program
{
static void Main(string[] args)
{
var summary = BenchmarkRunner.Run<CreateContainer>();
}
}
}

19
Runner/Runner.csproj Normal file
Просмотреть файл

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.10.10" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Benchmark.Abstractions\Benchmark.Abstractions.csproj" />
<ProjectReference Include="..\Unity.V4.Adapter\Unity.V4.Adapter.csproj" />
<ProjectReference Include="..\Unity.V5.Adapter\Unity.V5.Adapter.csproj" />
<ProjectReference Include="..\Unity.V6.Adapter\Unity.V6.Adapter.csproj" />
</ItemGroup>
</Project>

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

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Benchmark.Abstractions;
using BenchmarkDotNet.Attributes;
using Unity.V4.Adapter;
using Unity.V5.Adapter;
using Unity.V6.Adapter;
namespace Runner
{
public class CreateContainer
{
private UnityAdapterBase _adapter_v4 = new UnityV4Adapter();
private UnityAdapterBase _adapter_v5 = new UnityV5Adapter();
private UnityAdapterBase _adapter_v6 = new UnityV6Adapter();
[Benchmark]
public void CreateContainer_v4()
{
_adapter_v4
}
public void CreateContainer_v5()
{
}
public void CreateContainer_v6()
{
}
}
}

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

@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Unity" Version="4.0.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Benchmark.Abstractions\Benchmark.Abstractions.csproj" />
</ItemGroup>
</Project>

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

@ -0,0 +1,14 @@
using System;
using Benchmark.Abstractions;
using Microsoft.Practices.Unity;
namespace Unity.V4.Adapter
{
public class UnityV4Adapter : UnityAdapterBase
{
public override void CreateContainer()
{
var container = new UnityContainer();
}
}
}

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

@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Unity" Version="5.*" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Benchmark.Abstractions\Benchmark.Abstractions.csproj" />
</ItemGroup>
</Project>

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

@ -0,0 +1,13 @@
using System;
using Benchmark.Abstractions;
namespace Unity.V5.Adapter
{
public class UnityV5Adapter : UnityAdapterBase
{
public override void CreateContainer()
{
var container = new UnityContainer();
}
}
}

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

@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Benchmark.Abstractions\Benchmark.Abstractions.csproj" />
</ItemGroup>
</Project>

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

@ -0,0 +1,13 @@
using System;
using Benchmark.Abstractions;
namespace Unity.V6.Adapter
{
public class UnityV6Adapter : UnityAdapterBase
{
public override void CreateContainer()
{
var container = new UnityContainer();
}
}
}