private static void NativeBenchmark() { Regex re = null; bool result = false; NativeCompileTimeTicks = Bench.Measure(() => re = new Regex(Pattern, RegexOptions.Compiled), CompilationSampleCount); NativeExecutionTimeTicks = Bench.Measure(() => result = re.Match(TestInput).Success, ExecutionSampleCount); if (!result) { throw new InvalidOperationException("Internal test error"); } }
private void Benchmark(Func <string, SRegex> compile) { SRegex sre = null; bool result = false; CompileTimeTicks = Bench.Measure(() => { sre = compile(SrePattern); }, CompilationSampleCount); ExecutionTimeTicks = Bench.Measure(() => result = sre.Match(TestInput), ExecutionSampleCount); ExecPreparationTimeTicks = Bench.Measure(() => TestInput.Select(ch => (int)ch).ToArray(), ExecutionSampleCount); if (!result) { throw new InvalidOperationException("Internal test error"); } }