📷 A modern, cross-platform, 2D Graphics library for .NET
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.
 
 

51 lines
1.4 KiB

// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
#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 Standard : Config
{
public Standard() => this.AddJob(
Job.Default.WithRuntime(CoreRuntime.Core80).WithArguments([new MsBuildArgument("/p:DebugType=portable")]));
}
public class Short : Config
{
public Short() => this.AddJob(
Job.Default.WithRuntime(CoreRuntime.Core80)
.WithLaunchCount(1)
.WithWarmupCount(3)
.WithIterationCount(3)
.WithArguments([new MsBuildArgument("/p:DebugType=portable")]));
}
#if OS_WINDOWS
private bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
#endif
}