-
Notifications
You must be signed in to change notification settings - Fork 273
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Port CoreClr benchmarks to BenchmarkDotNet (#36)
* copy some coreclr benchmarks * port some some benchmarks * copy some coreclr benchmarks 2 * port some some benchmarks 2 * rename the folder with CoreClr benchmarks to BenchmarksGame * fix SpectralNorm_1 benchmark * copy knucleotide benchmarks * get knucleotide working * copy RegexRedux * make RegexRedux work * copy reverse-complement * make reverse-complement work * copy all .txt files to bin * update to the latest version * read the file length, dont hardcode it (it was buggy) * use Description to give benchmarks some nice display name, but preserve the Id which is exported for BenchView purpose * remove the Rider files from repo, ignore them * dont run more than 20 iterations * add possibility to run benchmarks for Legacy Jits * copy all benchstones * port Benchstones to BenchmarkDotNet * change the default iteration time from 0,5s to 0,25s to run benchmarks faster * update to the version which supports jagged arrays * copy Burgers * port Burgers * copy DefaultEqualityComparerPerf * port DefaultEqualityComparerPerf * copy FractalPerf * port FractalPerf * copy Inlining benchmarks * port Inlining benchmarks * rename Jit folder to Devirtualization to match the coreclr folder structure * copy SearchLoops * port SearchLoops * copy Linq * port Linq * copy perflab * port BlockCopyPerf * port CastingPerf * port CastingPerf2 * port DelegatePerf * remove Program.cs * port EnumPerf * fix the benchmarks * port StackWalk * port ThreadingPerf * port LowLevelPerf * port ReflectionPerf * copy V8.Crypto and V8.Richards * port V8.Crypto * port V8.Richards * copy SpanBench * port Span/Indexer * port SpanBench * update dependencies (which contain required fixes) * copy SIMD benchmarks * bump .NET to 4.6.1 so we can use Vector.LessThanOrEqualAny * port ConsoleMandel * port RayTracerBench * port SeekUnroll * move all internal types of RayTracer to a separate namespace to avoid conflicts with other existign types (like Vector) * move all the CoreCLR benchmarks to coreclr subfolder * copy CscBench * port CscBench * copy SciMark * port SciMark * copy ByteMark * port ByteMark * copy Math * port Math * dont try to compile Single type benchmarks which use MathF which does not support .NET Framework (only Core) * fix line endings ;) * group the benchmarks into categories, allow filtering and joining into single summary * export to json (for BenchView intergration purpose), allow users to specify "--baseJob Dry" to run every benchmark just once (good for testing) * always show Min and Max column to mimic xunit-performance behaviour * assign the right type to a category (the one which actually contains benchmarks, not helpers) * the benchmarks should not be static * read the array from field to preserve old benchmark id * don't use argument, keep old benchmark full name * get correct allocated bytes after a bug fix in BenchmarkDotNet * don't use argument, keep old benchmark full name + the value was 16, not 10 * missing * 2!! * update to BDN which uses full type name for exported results (we have two classes called "Support") * move the arguments to fields to match existing benchmark id * don't use argument, keep old benchmark full name * expectedSum argument needs to remain to keep old benchmark id in BenchView, do NOT remove it * don't use argument, keep old benchmark full name * move the arguments to fields to match existing benchmark id * add missing category * use Params from BDN to express things that were arguments used to setup benchmark, it allows to preserve ID * should be a part of previous commit * don't make PerfLabTests nano-benchmarks, it would blow up the scaling in BenchView * make sure ALL ids are the same * ResultsValidator - small helper utility to print a diff, I will remove it after we port all the benchmarks * remove the workaround for handling whitespaced in benchmarks Ids, proper fix has been applied to BDN * allow the users to specify outlier removal mode from console args * add median to the default columns * allow the users to test COMPlus_JitAlignLoop 0 vs 1 and affinity set vs no affinity and the permutation of it * make sure JIT does not optimize the benchmarks to empty loops! * update to latest BDN which gives us some nice attributes * apply some non-default settings to make the results from multimodal benchmarks more stable * add comments to benchmarks whic hare very dependent on loop alignment * fix ObjectGetTypeNoBoxing, disable ObjectGetType which is getting optimized to an empty loop * change the order of exported columns in CSV to make it more easy to copy paste it to an excel with some formulas * rename console attributes, don't introduce new standards ;) + don't write about default value, command line parser does it out of the box * add docs for test alignment and test affinity + fix a bug in arguments handling
- Loading branch information
1 parent
bffa4bf
commit afb4b7c
Showing
215 changed files
with
75,917 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,42 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFrameworks>net46;netcoreapp2.0;netcoreapp2.1</TargetFrameworks> | ||
<TargetFrameworks>net461;netcoreapp2.0;netcoreapp2.1</TargetFrameworks> | ||
<PlatformTarget>AnyCPU</PlatformTarget> | ||
<DebugType>pdbonly</DebugType> | ||
<DebugSymbols>true</DebugSymbols> | ||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
<LangVersion>7.3</LangVersion> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Compile Remove="img\**" /> | ||
<EmbeddedResource Remove="img\**" /> | ||
<None Remove="img\**" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<PackageReference Include="BenchmarkDotNet" Version="0.10.14.589" /> | ||
<PackageReference Include="BenchmarkDotNet" Version="0.10.14.657" /> | ||
<PackageReference Include="CommandLineParser" Version="2.2.1" /> | ||
<PackageReference Include="Jil" Version="2.15.4" /> | ||
<PackageReference Include="MessagePack" Version="1.7.3.4" /> | ||
<PackageReference Include="MessagePackAnalyzer" Version="1.6.0" /> | ||
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" /> | ||
<PackageReference Include="protobuf-net" Version="2.3.7" /> | ||
<PackageReference Include="System.Memory" Version="4.5.0" /> | ||
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" /> | ||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.5.0" /> | ||
<PackageReference Include="System.Runtime.Serialization.Formatters" Version="4.3.0" /> | ||
<PackageReference Include="System.Runtime.Serialization.Json" Version="4.3.0" /> | ||
<PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" /> | ||
<PackageReference Include="Utf8Json" Version="1.3.7" /> | ||
<PackageReference Include="ZeroFormatter" Version="1.6.4" /> | ||
<PackageReference Include="ZeroFormatter.Analyzer" Version="1.1.1" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Update="coreclr\BenchmarksGame\Inputs\*.txt"> | ||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
</None> | ||
</ItemGroup> | ||
<ItemGroup Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' "> | ||
<Compile Remove="coreclr\Math\Functions\Single\**" /> | ||
</ItemGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
namespace Benchmarks | ||
{ | ||
public static class Categories | ||
{ | ||
public const string CoreCLR = "CoreCLR"; | ||
public const string BenchmarksGame = "BenchmarksGame"; | ||
public const string Benchstones = "Benchstones"; | ||
public const string BenchF = "BenchF"; | ||
public const string BenchI = "BenchI"; | ||
public const string Inlining = "Inlining"; | ||
public const string SIMD = "SIMD"; | ||
public const string Span = "Span"; | ||
public const string V8 = "V8"; | ||
public const string Perflab = "Perflab"; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.