mirror of https://github.com/SixLabors/ImageSharp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.1 KiB
58 lines
2.1 KiB
// Copyright (c) Six Labors.
|
|
// Licensed under the Apache License, Version 2.0.
|
|
|
|
#if OS_WINDOWS
|
|
using System.Security.Principal;
|
|
using BenchmarkDotNet.Diagnostics.Windows;
|
|
#endif
|
|
using BenchmarkDotNet.Configs;
|
|
using BenchmarkDotNet.Diagnosers;
|
|
using BenchmarkDotNet.Environments;
|
|
using BenchmarkDotNet.Jobs;
|
|
using BenchmarkDotNet.Reports;
|
|
|
|
namespace SixLabors.ImageSharp.Benchmarks
|
|
{
|
|
public partial class Config : ManualConfig
|
|
{
|
|
public Config()
|
|
{
|
|
this.AddDiagnoser(MemoryDiagnoser.Default);
|
|
|
|
#if OS_WINDOWS
|
|
if (this.IsElevated)
|
|
{
|
|
this.AddDiagnoser(new NativeMemoryProfiler());
|
|
}
|
|
#endif
|
|
|
|
this.SummaryStyle = SummaryStyle.Default.WithMaxParameterColumnWidth(50);
|
|
}
|
|
|
|
public class MultiFramework : Config
|
|
{
|
|
public MultiFramework() => this.AddJob(
|
|
Job.Default.WithRuntime(ClrRuntime.Net472),
|
|
Job.Default.WithRuntime(CoreRuntime.Core31),
|
|
Job.Default.WithRuntime(CoreRuntime.Core50).With(new Argument[] { new MsBuildArgument("/p:DebugType=portable") }));
|
|
}
|
|
|
|
public class ShortMultiFramework : Config
|
|
{
|
|
public ShortMultiFramework() => this.AddJob(
|
|
Job.Default.WithRuntime(ClrRuntime.Net472).WithLaunchCount(1).WithWarmupCount(3).WithIterationCount(3),
|
|
Job.Default.WithRuntime(CoreRuntime.Core31).WithLaunchCount(1).WithWarmupCount(3).WithIterationCount(3),
|
|
Job.Default.WithRuntime(CoreRuntime.Core50).WithLaunchCount(1).WithWarmupCount(3).WithIterationCount(3).With(new Argument[] { new MsBuildArgument("/p:DebugType=portable") }));
|
|
}
|
|
|
|
public class ShortCore31 : Config
|
|
{
|
|
public ShortCore31()
|
|
=> this.AddJob(Job.Default.WithRuntime(CoreRuntime.Core31).WithLaunchCount(1).WithWarmupCount(3).WithIterationCount(3));
|
|
}
|
|
|
|
#if OS_WINDOWS
|
|
private bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
|
|
#endif
|
|
}
|
|
}
|
|
|