コード例 #1
0
ファイル: Program.cs プロジェクト: mhentosh/TemplateBenchmark
        public static void Main(string[] args)
        {
            var ls = new LinearSubstitutor();
            var rs = new RegexSubstitutor();

            Benchmark(PrepareBenchmarkData(10, ls, rs));
            Benchmark(PrepareBenchmarkData(50, ls, rs));
            Benchmark(PrepareBenchmarkData(100, ls, rs));
            Benchmark(PrepareBenchmarkData(200, ls, rs));
            Benchmark(PrepareBenchmarkData(500, ls, rs));
            //Benchmark(PrepareBenchmarkData(1000, ls, rs));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: mhentosh/TemplateBenchmark
        static IEnumerable <Func <(long, SubstitutorType)> > PrepareBenchmarkData(int sizeMultiplier, LinearSubstitutor ls, RegexSubstitutor rs)
        {
            var template = string.Join(string.Empty, Enumerable.Repeat(Template.Value, sizeMultiplier));
            Func <(long, SubstitutorType)> linearFunc = new Func <(long, SubstitutorType)>(() =>
            {
                var res = ExecutionHelper.GetExecutionTime(() => ls.FindAndSubstitute(Template.TemplateData, template));
                return(res.ticks, ls.Type);
            });
            Func <(long, SubstitutorType)> regexFunc = new Func <(long, SubstitutorType)>(() => {
                var res = ExecutionHelper.GetExecutionTime(() => rs.FindAndSubstitute(Template.TemplateData, template));
                return(res.ticks, rs.Type);
            });

            Console.WriteLine($"Template size: {sizeMultiplier} benchmark");

            return(Enumerable.Repeat(regexFunc, BenchmarkIterations).Concat(Enumerable.Repeat(linearFunc, BenchmarkIterations)));
        }