Skip to content

Commit

Permalink
new Runtime and Toolchain for CoreRT, #718
Browse files Browse the repository at this point in the history
  • Loading branch information
adamsitnik committed Apr 14, 2018
1 parent 0cccba1 commit 4acc151
Show file tree
Hide file tree
Showing 29 changed files with 845 additions and 359 deletions.
1 change: 1 addition & 0 deletions BenchmarkDotNet.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IL/@EntryIndexedValue">IL</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IO/@EntryIndexedValue">IO</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=OSX/@EntryIndexedValue">OSX</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RT/@EntryIndexedValue">RT</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsbuildVersion/@EntryValue">983040</s:Int64>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
Expand Down
63 changes: 34 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Usually, you even shouldn't care about a number of iterations because BenchmarkD

It's really easy to design a performance experiment with BenchmarkDotNet.
Just mark your method with the [Benchmark] attribute and the benchmark is ready.
Want to run your code on .NET Framework, .NET Core, and Mono?
Want to run your code on .NET Framework, .NET Core, CoreRT, and Mono?
No problem: a few more attributes and the corresponded projects will be generated; the results will be presented at the same summary table.
In fact, you can compare any environment that you want:
you can check performance difference between processor architectures (x86/x64),
Expand Down Expand Up @@ -51,7 +51,7 @@ using BenchmarkDotNet.Running;

namespace MyBenchmarks
{
[ClrJob(isBaseline: true), CoreJob, MonoJob]
[ClrJob(isBaseline: true), CoreJob, MonoJob, CoreRtJob]
[RPlotExporter, RankColumn]
public class Md5VsSha256
{
Expand Down Expand Up @@ -90,32 +90,37 @@ BenchmarkDotNet allows designing a performance experiment in a user-friendly dec
At the end of an experiment, it will generate a summary table which contains only important data in a compact and understandable form:

```
BenchmarkDotNet=v0.10.12, OS=Windows 10 Redstone 3 [1709, Fall Creators Update] (10.0.16299.192)
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical cores and 4 physical cores
Frequency=2531249 Hz, Resolution=395.0619 ns, Timer=TSC
.NET Core SDK=2.0.3
[Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT
Clr : .NET Framework 4.7 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2600.0
Core : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT
Mono : Mono 5.4.0 (Visual Studio), 64bit
Method | Runtime | N | Mean | Error | StdDev | Scaled | Rank |
------- |-------- |------ |-----------:|----------:|----------:|-------:|-----:|
Md5 | Clr | 1000 | 5.801 us | 0.0364 us | 0.0545 us | 1.00 | 2 |
Md5 | Core | 1000 | 3.151 us | 0.0197 us | 0.0289 us | 0.54 | 1 |
Md5 | Mono | 1000 | 6.030 us | 0.0354 us | 0.0507 us | 1.04 | 3 |
| | | | | | | |
Md5 | Clr | 10000 | 27.641 us | 0.1567 us | 0.2248 us | 1.00 | 2 |
Md5 | Core | 10000 | 25.754 us | 0.2220 us | 0.3323 us | 0.93 | 1 |
Md5 | Mono | 10000 | 48.149 us | 0.2993 us | 0.4480 us | 1.74 | 3 |
| | | | | | | |
Sha256 | Clr | 1000 | 11.663 us | 0.1059 us | 0.1553 us | 1.00 | 2 |
Sha256 | Core | 1000 | 6.922 us | 0.0444 us | 0.0651 us | 0.59 | 1 |
Sha256 | Mono | 1000 | 20.382 us | 0.1081 us | 0.1584 us | 1.75 | 3 |
| | | | | | | |
Sha256 | Clr | 10000 | 104.530 us | 1.1295 us | 1.6556 us | 1.00 | 2 |
Sha256 | Core | 10000 | 58.408 us | 0.4324 us | 0.6472 us | 0.56 | 1 |
Sha256 | Mono | 10000 | 186.900 us | 3.3683 us | 4.9371 us | 1.79 | 3 |
BenchmarkDotNet=v0.10.14.20180414-develop, OS=Windows 10.0.16299.309 (1709/FallCreatorsUpdate/Redstone3)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
Frequency=3507504 Hz, Resolution=285.1030 ns, Timer=TSC
.NET Core SDK=2.1.300-preview1-008174
[Host] : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
Job-HKEEXO : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2633.0
Core : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
CoreRT : .NET CoreRT 1.0.26414.01, 64bit AOT
Mono : Mono 5.10.0 (Visual Studio), 64bit
| Method | Runtime | N | Mean | Error | StdDev | Scaled | Rank |
|------- |-------- |------ |-----------:|----------:|----------:|-------:|-----:|
| Sha256 | Clr | 1000 | 8.009 us | 0.0370 us | 0.0346 us | 1.00 | 3 |
| Sha256 | Core | 1000 | 4.447 us | 0.0117 us | 0.0110 us | 0.56 | 2 |
| Sha256 | CoreRT | 1000 | 4.321 us | 0.0139 us | 0.0130 us | 0.54 | 1 |
| Sha256 | Mono | 1000 | 14.924 us | 0.0574 us | 0.0479 us | 1.86 | 4 |
| | | | | | | | |
| Md5 | Clr | 1000 | 3.051 us | 0.0604 us | 0.0742 us | 1.00 | 3 |
| Md5 | Core | 1000 | 2.004 us | 0.0058 us | 0.0054 us | 0.66 | 2 |
| Md5 | CoreRT | 1000 | 1.892 us | 0.0087 us | 0.0077 us | 0.62 | 1 |
| Md5 | Mono | 1000 | 3.878 us | 0.0181 us | 0.0170 us | 1.27 | 4 |
| | | | | | | | |
| Sha256 | Clr | 10000 | 75.780 us | 1.0445 us | 0.9771 us | 1.00 | 3 |
| Sha256 | Core | 10000 | 41.134 us | 0.2185 us | 0.1937 us | 0.54 | 2 |
| Sha256 | CoreRT | 10000 | 40.895 us | 0.0804 us | 0.0628 us | 0.54 | 1 |
| Sha256 | Mono | 10000 | 141.377 us | 0.5598 us | 0.5236 us | 1.87 | 4 |
| | | | | | | | |
| Md5 | Clr | 10000 | 18.575 us | 0.0727 us | 0.0644 us | 1.00 | 3 |
| Md5 | Core | 10000 | 17.562 us | 0.0436 us | 0.0408 us | 0.95 | 2 |
| Md5 | CoreRT | 10000 | 17.447 us | 0.0293 us | 0.0244 us | 0.94 | 1 |
| Md5 | Mono | 10000 | 34.500 us | 0.1553 us | 0.1452 us | 1.86 | 4 |
```

In artifacts, you can also find detailed information about each iteration.
Expand Down Expand Up @@ -149,7 +154,7 @@ A few useful links for you:

BenchmarkDotNet supports all kinds of .NET stacks:

* **Supported runtimes:** .NET Framework (4.6+), .NET Core (1.1+), Mono
* **Supported runtimes:** .NET Framework (4.6+), .NET Core (2.0+), Mono, CoreRT
* **Supported languages:** C#, F#, Visual Basic
* **Supported OS:** Windows, Linux, macOS

Expand Down
12 changes: 6 additions & 6 deletions docs/guide/Configs/Toolchains.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ In BenchmarkDotNet we generate, build and execute new console app per every benc

When you run your benchmarks without specifying the toolchain in an explicit way, we use the default one. It works OOTB, you don't need to worry about anything.

We use Roslyn for classic .NET and Mono, and `dotnet cli` for .NET Core.
We use Roslyn for classic .NET and Mono, and `dotnet cli` for .NET Core and CoreRT.

## Multiple frameworks support

Expand All @@ -19,10 +19,10 @@ BenchmarkDotNet allows you to take full advantage of that. With single config, w
If you specify `Runtime` in explicit way, we just choose the right toolchain for you.

```cs
[ClrJob, MonoJob, CoreJob]
[ClrJob, MonoJob, CoreJob, CoreRtJob]
public class Algo_Md5VsSha256
{
// the benchmarks are going to be executed for classic .NET, Mono (default path) and .NET Core
// the benchmarks are going to be executed for classic .NET, Mono (default path), .NET Core and CoreRT (latest version)
}
```

Expand All @@ -32,16 +32,16 @@ At some point of time we need to choose the target framework moniker (TFM).

When you are running your app with benchmark as .NET Core app, we just check the version of the `System.Runtime.dll` which allows us to decide which version of .NET Core you are using.

But when you are running your project as classic .NET (.NET 4.6.2 for example), we don't know which TFM to choose for your .NET Core Runtime, so we use the default one - **netcoreapp1.1**.
But when you are running your project as classic .NET (.NET 4.6.2 for example), we don't know which TFM to choose for your .NET Core Runtime, so we use the default one - **netcoreapp2.0**.

If the default `netcoreapp1.1` is not OK for you, you must configure the toolchains in explicit way:
If the default `netcoreapp2.0` is not OK for you, you must configure the toolchains in explicit way:

```cs
public class MultipleRuntimes : ManualConfig
{
public MultipleRuntimes()
{
Add(Job.Default.With(CsProjCoreToolchain.NetCoreApp20)); // .NET Core 2.0
Add(Job.Default.With(CsProjCoreToolchain.NetCoreApp21)); // .NET Core 2.1
Add(Job.Default.With(CsProjClassicNetToolchain.Net462)); // NET 4.6.2
}
Expand Down
54 changes: 29 additions & 25 deletions docs/guide/Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Create new console application and install the [BenchmarkDotNet](https://www.nuget.org/packages/BenchmarkDotNet/) NuGet package. We support:

* *Projects:* `*.csproj` (classic and modern with PackageReferences), `*.xproj`/`project.json`
* *Runtimes:* Full .NET Framework (4.6+), .NET Core (1.1+), Mono
* *Runtimes:* Full .NET Framework (4.6+), .NET Core (2.0+), Mono, CoreRT
* *OS:* Windows, Linux, MacOS
* *Languages:* C#, F#, VB

Expand Down Expand Up @@ -76,33 +76,37 @@ Frequency=2143476 Hz, Resolution=466.5319 ns, Timer=TSC

## Jobs

You can check several environments at once. For example, you can compare performance of Full .NET Framework, .NET Core, and Mono. Just add the `ClrJob`, `MonoJob`, `CoreJob` attributes before the class declaration (it requires a .NETCore project, installed CoreCLR and Mono):
You can check several environments at once. For example, you can compare performance of Full .NET Framework, .NET Core, Mono and CoreRT. Just add the `ClrJob`, `MonoJob`, `CoreJob`, `CoreRtJob` attributes before the class declaration (it requires a .NETCore project, installed CoreCLR and Mono):

```cs
[ClrJob, MonoJob, CoreJob]
[ClrJob, MonoJob, CoreJob, CoreRtJob]
public class Md5VsSha256
```

Example of the result:

```ini
BenchmarkDotNet=v0.10.1, OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-4702MQ CPU 2.20GHz, ProcessorCount=8
Frequency=2143476 Hz, Resolution=466.5319 ns, Timer=TSC
[Host] : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0
Clr : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0
Core : .NET Core 4.6.24628.01, 64bit RyuJIT
Mono : Mono 4.6.2 (Visual Studio built mono), 64bit


Method | Job | Runtime | Mean | StdDev | Allocated |
------- |----- |-------- |------------ |---------- |---------- |
Sha256 | Clr | Clr | 130.5169 us | 1.8489 us | 188 B |
Md5 | Clr | Clr | 25.8010 us | 0.1757 us | 113 B |
Sha256 | Core | Core | 57.6534 us | 0.8210 us | 113 B |
Md5 | Core | Core | 24.2675 us | 0.0687 us | 80 B |
Sha256 | Mono | Mono | 182.8917 us | 7.5126 us | N/A |
Md5 | Mono | Mono | 46.0745 us | 1.4978 us | N/A |
BenchmarkDotNet=v0.10.14.20180414-develop, OS=Windows 10.0.16299.309 (1709/FallCreatorsUpdate/Redstone3)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
Frequency=3507504 Hz, Resolution=285.1030 ns, Timer=TSC
.NET Core SDK=2.1.300-preview1-008174
[Host] : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
Job-YRHGTP : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2633.0
Core : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
CoreRT : .NET CoreRT 1.0.26414.01, 64bit AOT
Mono : Mono 5.10.0 (Visual Studio), 64bit

| Method | Runtime | Mean | Error | StdDev |
|------- |-------- |-----------:|----------:|----------:|
| Sha256 | Clr | 75.780 us | 1.0445 us | 0.9771 us |
| Sha256 | Core | 41.134 us | 0.2185 us | 0.1937 us |
| Sha256 | CoreRT | 40.895 us | 0.0804 us | 0.0628 us |
| Sha256 | Mono | 141.377 us | 0.5598 us | 0.5236 us |
| | | | | |
| Md5 | Clr | 18.575 us | 0.0727 us | 0.0644 us |
| Md5 | Core | 17.562 us | 0.0436 us | 0.0408 us |
| Md5 | CoreRT | 17.447 us | 0.0293 us | 0.0244 us |
| Md5 | Mono | 34.500 us | 0.1553 us | 0.1452 us |
```

There are a lot of predefined jobs which you can use. For example, you can compare `LegacyJitX86` vs `LegacyJitX64` vs `RyuJitX64`:
Expand All @@ -123,7 +127,7 @@ public class Md5VsSha256
{
Add(new Job(EnvMode.LegacyJitX86, EnvMode.Clr, RunMode.Dry)
{
Env = { Runtime = Runtime.Core },
Env = { Runtime = Runtime.Clr },
Run = { LaunchCount = 3, WarmupCount = 5, TargetCount = 10 },
Accuracy = { MaxStdErrRelative = 0.01 }
}));
Expand All @@ -143,10 +147,10 @@ You can also add custom columns to the summary table:
public class Md5VsSha256
```

| Method | Median | StdDev | Min | Max | |
| ------ | ----------- | --------- | ----------- | ----------- | ---- |
| Sha256 | 131.3200 us | 4.6744 us | 129.8216 us | 147.7630 us | |
| Md5 | 26.2847 us | 0.4424 us | 25.8442 us | 27.4258 us | |
| Method | Median | StdDev | Min | Max |
| ------ | ----------- | --------- | ----------- | ----------- |
| Sha256 | 131.3200 us | 4.6744 us | 129.8216 us | 147.7630 us |
| Md5 | 26.2847 us | 0.4424 us | 25.8442 us | 27.4258 us |

Of course, you can define own columns based on full benchmark summary.

Expand Down
63 changes: 34 additions & 29 deletions docs/guide/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Welcome to the BenchmarkDotNet documentation
# Welcome to the BenchmarkDotNet documentation

<img src="logo/logo-wide.png" width="600px" />

Expand Down Expand Up @@ -44,7 +44,7 @@ It's very easy to start using BenchmarkDotNet.
Let's look at an example:

```cs
[ClrJob(isBaseline: true), CoreJob, MonoJob]
[ClrJob(isBaseline: true), CoreJob, MonoJob, CoreRtJob]
[RPlotExporter, RankColumn]
public class Md5VsSha256
{
Expand Down Expand Up @@ -74,32 +74,37 @@ BenchmarkDotNet allows designing a performance experiment in a user-friendly dec
At the end of an experiment, it will generate a summary table which contains only important data in a compact and understandable form:

```
BenchmarkDotNet=v0.10.12, OS=Windows 10 Redstone 3 [1709, Fall Creators Update] (10.0.16299.192)
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical cores and 4 physical cores
Frequency=2531249 Hz, Resolution=395.0619 ns, Timer=TSC
.NET Core SDK=2.0.3
[Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT
Clr : .NET Framework 4.7 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2600.0
Core : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT
Mono : Mono 5.4.0 (Visual Studio), 64bit
Method | Runtime | N | Mean | Error | StdDev | Scaled | Rank |
------- |-------- |------ |-----------:|----------:|----------:|-------:|-----:|
Md5 | Clr | 1000 | 5.801 us | 0.0364 us | 0.0545 us | 1.00 | 2 |
Md5 | Core | 1000 | 3.151 us | 0.0197 us | 0.0289 us | 0.54 | 1 |
Md5 | Mono | 1000 | 6.030 us | 0.0354 us | 0.0507 us | 1.04 | 3 |
| | | | | | | |
Md5 | Clr | 10000 | 27.641 us | 0.1567 us | 0.2248 us | 1.00 | 2 |
Md5 | Core | 10000 | 25.754 us | 0.2220 us | 0.3323 us | 0.93 | 1 |
Md5 | Mono | 10000 | 48.149 us | 0.2993 us | 0.4480 us | 1.74 | 3 |
| | | | | | | |
Sha256 | Clr | 1000 | 11.663 us | 0.1059 us | 0.1553 us | 1.00 | 2 |
Sha256 | Core | 1000 | 6.922 us | 0.0444 us | 0.0651 us | 0.59 | 1 |
Sha256 | Mono | 1000 | 20.382 us | 0.1081 us | 0.1584 us | 1.75 | 3 |
| | | | | | | |
Sha256 | Clr | 10000 | 104.530 us | 1.1295 us | 1.6556 us | 1.00 | 2 |
Sha256 | Core | 10000 | 58.408 us | 0.4324 us | 0.6472 us | 0.56 | 1 |
Sha256 | Mono | 10000 | 186.900 us | 3.3683 us | 4.9371 us | 1.79 | 3 |
BenchmarkDotNet=v0.10.14.20180414-develop, OS=Windows 10.0.16299.309 (1709/FallCreatorsUpdate/Redstone3)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
Frequency=3507504 Hz, Resolution=285.1030 ns, Timer=TSC
.NET Core SDK=2.1.300-preview1-008174
[Host] : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
Job-HKEEXO : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.2633.0
Core : .NET Core 2.1.0-preview1-26216-03 (CoreCLR 4.6.26216.04, CoreFX 4.6.26216.02), 64bit RyuJIT
CoreRT : .NET CoreRT 1.0.26414.01, 64bit AOT
Mono : Mono 5.10.0 (Visual Studio), 64bit
| Method | Runtime | N | Mean | Error | StdDev | Scaled | Rank |
|------- |-------- |------ |-----------:|----------:|----------:|-------:|-----:|
| Sha256 | Clr | 1000 | 8.009 us | 0.0370 us | 0.0346 us | 1.00 | 3 |
| Sha256 | Core | 1000 | 4.447 us | 0.0117 us | 0.0110 us | 0.56 | 2 |
| Sha256 | CoreRT | 1000 | 4.321 us | 0.0139 us | 0.0130 us | 0.54 | 1 |
| Sha256 | Mono | 1000 | 14.924 us | 0.0574 us | 0.0479 us | 1.86 | 4 |
| | | | | | | | |
| Md5 | Clr | 1000 | 3.051 us | 0.0604 us | 0.0742 us | 1.00 | 3 |
| Md5 | Core | 1000 | 2.004 us | 0.0058 us | 0.0054 us | 0.66 | 2 |
| Md5 | CoreRT | 1000 | 1.892 us | 0.0087 us | 0.0077 us | 0.62 | 1 |
| Md5 | Mono | 1000 | 3.878 us | 0.0181 us | 0.0170 us | 1.27 | 4 |
| | | | | | | | |
| Sha256 | Clr | 10000 | 75.780 us | 1.0445 us | 0.9771 us | 1.00 | 3 |
| Sha256 | Core | 10000 | 41.134 us | 0.2185 us | 0.1937 us | 0.54 | 2 |
| Sha256 | CoreRT | 10000 | 40.895 us | 0.0804 us | 0.0628 us | 0.54 | 1 |
| Sha256 | Mono | 10000 | 141.377 us | 0.5598 us | 0.5236 us | 1.87 | 4 |
| | | | | | | | |
| Md5 | Clr | 10000 | 18.575 us | 0.0727 us | 0.0644 us | 1.00 | 3 |
| Md5 | Core | 10000 | 17.562 us | 0.0436 us | 0.0408 us | 0.95 | 2 |
| Md5 | CoreRT | 10000 | 17.447 us | 0.0293 us | 0.0244 us | 0.94 | 1 |
| Md5 | Mono | 10000 | 34.500 us | 0.1553 us | 0.1452 us | 1.86 | 4 |
```

In artifacts, you can also find detailed information about each iteration.
Expand Down Expand Up @@ -133,7 +138,7 @@ A few useful links for you:

BenchmarkDotNet supports all kinds of .NET stacks:

* **Supported runtimes:** .NET Framework (4.6+), .NET Core (1.1+), Mono
* **Supported runtimes:** .NET Framework (4.6+), .NET Core (2.0+), Mono, CoreRT
* **Supported languages:** C#, F#, Visual Basic
* **Supported OS:** Windows, Linux, macOS

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace BenchmarkDotNet.Samples.Algorithms
{
[ClrJob, MonoJob, CoreJob]
[ClrJob, MonoJob, CoreJob, CoreRtJob]
public class Algo_Md5VsSha256
{
private const int N = 10000;
Expand Down
11 changes: 11 additions & 0 deletions src/BenchmarkDotNet/Attributes/Jobs/CoreRtJobAttribute.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using BenchmarkDotNet.Jobs;

namespace BenchmarkDotNet.Attributes.Jobs
{
public class CoreRtJobAttribute : JobConfigBaseAttribute
{
public CoreRtJobAttribute(bool isBaseline = false) : base(Job.CoreRT.WithIsBaseline(isBaseline))
{
}
}
}
9 changes: 9 additions & 0 deletions src/BenchmarkDotNet/Attributes/Jobs/DryCoreRtJobAttribute.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using BenchmarkDotNet.Jobs;

namespace BenchmarkDotNet.Attributes.Jobs
{
public class DryCoreRtJobAttribute : JobConfigBaseAttribute
{
public DryCoreRtJobAttribute() : base(Job.DryCoreRT) { }
}
}
Loading

0 comments on commit 4acc151

Please sign in to comment.