benchmarks/Elastic.Apm.Benchmarks/WildcardMatcherBenchmark.cs (48 lines of code) (raw):

// Licensed to Elasticsearch B.V under one or more agreements. // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information using System; using System.Diagnostics; using BenchmarkDotNet.Attributes; using Elastic.Apm.Helpers; namespace Elastic.Apm.Benchmarks { [MemoryDiagnoser] public class WildcardMatcherBenchmark { private static string _str; [GlobalSetup] public void Setup() { _str = string.Empty; var random = new Random(); for (var i = 0; i < 1000; i++) _str += random.Next(10).ToString(); } [Benchmark] public void MatcherVerbatimCaseSensitive() { var matcher = new WildcardMatcher.VerbatimMatcher(_str, true); var res = matcher.Matches(_str); Debug.WriteLine(res); } [Benchmark] public void MatcherVerbatimCaseInsensitive() { var matcher = new WildcardMatcher.VerbatimMatcher(_str, false); var res = matcher.Matches(_str); Debug.WriteLine(res); } [Benchmark] public void MatcherSimpleCaseSensitive() { var matcher = new WildcardMatcher.SimpleWildcardMatcher(_str, false, false, false); var res = matcher.Matches(_str); Debug.WriteLine(res); } [Benchmark] public void MatcherSimpleCaseInsensitive() { var matcher = new WildcardMatcher.SimpleWildcardMatcher(_str, false, false, true); var res = matcher.Matches(_str); Debug.WriteLine(res); } } }