Beispiel #1
0
        public void PerfTestWithSlowTokenizerAndLargeQuery()
        {
            ITokenizer tokenizer = new SimpleRegexTokenizer();
            string     query     = @"MATCH app = 'MyTestApp'
AND ex IN ('System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException')
AND sf = 'sadsdfsdfsdfsdfssdfjhsfjhsdfjhsdfjhsdfjhsdjfhsdjhfsdjfhsdhfsdjhfsdjhfjsdhfjsdhfjhsdjfhsdjfh'
AND sf = 'fggdfgdfgfdgdfgdfgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggh'
AND sf = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
AND sf = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
AND sf = 'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
AND sf = 'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'
AND sf = '1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
AND sf = '2sadsdfsdfsdfsdfssdfjhsfjhsdfjhsdfjhsdfjhsdjfhsdjhfsdjfhsdhfsdjhfsdjhfjsdhfjsdhfjhsdjfhsdjfh'
AND sf = '3fggdfgdfgfdgdfgdfgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggh'
AND sf = '4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
AND sf = '5bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
AND sf = '6ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
AND sf = '7ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'
AND sf = '8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
AND ex IN ('System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException')
AND ex IN ('System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException')
AND ex IN ('System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException','System.NullReferenceException', 'System.FormatException')
BETWEEN 2016-01-01 00:00:00 AND 2016-02-01 00:00:00
LIMIT 100";

            PerfTest(tokenizer, query, "Slow tokenizer + large query");
        }
Beispiel #2
0
        public void PerfTestWithSlowTokenizerAndSmallQuery()
        {
            ITokenizer tokenizer = new SimpleRegexTokenizer();
            string     query     = @"MATCH app = 'MyTestApp'
AND ex IN ('System.NullReferenceException', 'System.FormatException')
BETWEEN 2016-01-01 00:00:00 AND 2016-02-01 00:00:00
LIMIT 100";

            PerfTest(tokenizer, query, "Slow tokenizer + small query");
        }
Beispiel #3
0
        public static MethodData Parse(string expression)
        {
            var tokenizer = new SimpleRegexTokenizer();
            var tokens    = tokenizer.Tokenize(expression);

            foreach (var token in tokens)
            {
                Console.WriteLine($"{token.TokenType}:{token.Value}");
            }

            return(MethodExtract.Parse(tokens));
        }
Beispiel #4
0
        public void Run()
        {
            while (true)
            {
                Console.WriteLine("Press 1 : view inefficient version output");
                Console.WriteLine("Press 2 : Perf test of inefficient tokenizer with a small query");
                Console.WriteLine("Press 3 : Perf test of inefficient tokenizer with a large query");
                Console.WriteLine("Press 4 : view more efficient version output");
                Console.WriteLine("Press 5 : Perf test of more efficient tokenizer with a small query");
                Console.WriteLine("Press 6 : Perf test of more efficient tokenizer with a large query");

                var key = Console.ReadKey();
                Console.WriteLine("");

                switch (key.KeyChar.ToString())
                {
                case "1":
                    ITokenizer slowTokenizer = new SimpleRegexTokenizer();
                    RunOnceAndPrintOutput(slowTokenizer, "Run with inefficient tokenizer");
                    break;

                case "2":
                    PerfTestWithSlowTokenizerAndSmallQuery();
                    break;

                case "3":
                    PerfTestWithSlowTokenizerAndLargeQuery();
                    break;

                case "4":
                    ITokenizer fastTokenizer = new PrecedenceBasedRegexTokenizer();
                    RunOnceAndPrintOutput(fastTokenizer, "Run with faster tokenizer");
                    break;

                case "5":
                    PerfTestWithFastTokenizerAndSmallQuery();
                    break;

                case "6":
                    PerfTestWithFastTokenizerAndLargeQuery();
                    break;

                default:
                    Console.WriteLine("Press 1, 2, 3, 4, 5 or 6");
                    break;
                }

                Console.WriteLine("");
            }
        }