using System; using BenchmarkDotNet.Configs; using BenchmarkDotNet.Jobs; using Perfolizer.Horology; namespace Umbraco.Tests.Benchmarks.Config; /// /// Configures the benchmark to run with less warmup and a shorter iteration time than the standard benchmark. /// [AttributeUsage(AttributeTargets.Class)] 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 .WithIterationCount(3)); // 3 target iteration /// /// Gets the manual configuration. /// protected ManualConfig Config { get; } /// IConfig IConfigSource.Config => Config; }