using BenchmarkDotNet.Configs; using BenchmarkDotNet.Horology; using BenchmarkDotNet.Jobs; using System; namespace Umbraco.Tests.Benchmarks.Config { /// /// Configures the benchmark to run with less warmup and a shorter iteration time than the standard benchmark. /// public class QuickRunConfigAttribute : Attribute, IConfigSource { /// /// Initializes a new instance of the class. /// public QuickRunConfigAttribute() { Config = (ManualConfig) ManualConfig.CreateEmpty() .With(Job.Default.WithLaunchCount(1) // benchmark process will be launched only once .WithIterationTime(new TimeInterval(100, TimeUnit.Millisecond)) // 100ms per iteration .WithWarmupCount(3) // 3 warmup iteration .WithTargetCount(3)); // 3 target iteration } /// /// Gets the manual configuration. /// protected ManualConfig Config { get; } /// IConfig IConfigSource.Config => Config; } }