change benchmarks to run both full framework and core

This commit is contained in:
Marko Lahma
2018-10-14 14:56:05 +03:00
parent bfaa9ad2a0
commit daf290592a
6 changed files with 27 additions and 31 deletions

2
.gitignore vendored
View File

@@ -87,4 +87,4 @@ PrecompiledWeb
project.lock.json
BenchmarkDotNet.Artifacts
BenchmarkDotNet.Artifacts*

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects" />
</context>
<objects xmlns="http://www.springframework.net">
<object name="Spring.Benchmark.Classes.ISingleton1" type="Spring.Benchmark.Classes.Singleton1, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ISingleton2" type="Spring.Benchmark.Classes.Singleton2, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ISingleton3" type="Spring.Benchmark.Classes.Singleton3, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ITransient1" type="Spring.Benchmark.Classes.Transient1, Spring.Benchmark" singleton="false" />
<object name="Spring.Benchmark.Classes.ITransient2" type="Spring.Benchmark.Classes.Transient2, Spring.Benchmark" singleton="false" />
<object name="Spring.Benchmark.Classes.ITransient3" type="Spring.Benchmark.Classes.Transient3, Spring.Benchmark" singleton="false" />
</objects>
</spring>
</configuration>

View File

@@ -25,11 +25,11 @@ using Spring.Context.Support;
namespace Spring.Benchmark
{
[MediumRunJob]
[ClrJob, CoreJob]
[MemoryDiagnoser]
public class ContainerBenchmark
{
private IApplicationContext container;
private XmlApplicationContext container;
[Params(5_000)]
public int Iterations { get; set; }
@@ -37,7 +37,8 @@ namespace Spring.Benchmark
[GlobalSetup]
public void GlobalSetup()
{
container = ContextRegistry.GetContext();
container = new XmlApplicationContext("ContainerBenchmark.xml");
container.Refresh();
}
[Benchmark]

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<objects xmlns="http://www.springframework.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd">
<object name="Spring.Benchmark.Classes.ISingleton1" type="Spring.Benchmark.Classes.Singleton1, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ISingleton2" type="Spring.Benchmark.Classes.Singleton2, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ISingleton3" type="Spring.Benchmark.Classes.Singleton3, Spring.Benchmark" singleton="true" />
<object name="Spring.Benchmark.Classes.ITransient1" type="Spring.Benchmark.Classes.Transient1, Spring.Benchmark" singleton="false" />
<object name="Spring.Benchmark.Classes.ITransient2" type="Spring.Benchmark.Classes.Transient2, Spring.Benchmark" singleton="false" />
<object name="Spring.Benchmark.Classes.ITransient3" type="Spring.Benchmark.Classes.Transient3, Spring.Benchmark" singleton="false" />
</objects>

View File

@@ -23,7 +23,7 @@ using Spring.Objects.Factory.Support;
namespace Spring.Benchmark
{
[MediumRunJob]
[ClrJob, CoreJob]
[MemoryDiagnoser]
public class HybridSetBenchmark
{

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TargetFrameworks>net471;netcoreapp2.1</TargetFrameworks>
<RootNamespace>Spring.Benchmark</RootNamespace>
</PropertyGroup>
@@ -14,4 +14,10 @@
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Content Include="ContainerBenchmark.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>