From 1133c3e46eec07c7354c6639269a05cf28de5929 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Sat, 9 Jun 2018 20:40:48 -0500 Subject: [PATCH] Added parsing benchmark. --- .../Avalonia.Benchmarks.csproj | 1 + tests/Avalonia.Benchmarks/Markup/Parsing.cs | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 tests/Avalonia.Benchmarks/Markup/Parsing.cs diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj index 9e92baf0ff..0510963ee1 100644 --- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj +++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj @@ -1,5 +1,6 @@  + Exe netcoreapp2.0 diff --git a/tests/Avalonia.Benchmarks/Markup/Parsing.cs b/tests/Avalonia.Benchmarks/Markup/Parsing.cs new file mode 100644 index 0000000000..71826986b2 --- /dev/null +++ b/tests/Avalonia.Benchmarks/Markup/Parsing.cs @@ -0,0 +1,34 @@ +using Avalonia.Controls; +using Avalonia.Markup.Parsers; +using BenchmarkDotNet.Attributes; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Avalonia.Benchmarks.Markup +{ + [MemoryDiagnoser] + public class Parsing + { + [Benchmark] + public void ParseComplexSelector() + { + var selectorString = "ListBox > TextBox /template/ TextBlock[IsFocused=True]"; + var parser = new SelectorParser((ns, s) => + { + switch (s) + { + case "ListBox": + return typeof(ListBox); + case "TextBox": + return typeof(TextBox); + case "TextBlock": + return typeof(TextBlock); + default: + return null; + } + }); + var selector = parser.Parse(selectorString); + } + } +}