From 4b13d3c04a8e108b03115b1127823089eda96506 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Tue, 17 Mar 2020 21:58:09 +0100 Subject: [PATCH] Add benchmarks for TextBox and Button. --- ...endarBenchmark.cs => ControlsBenchmark.cs} | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) rename tests/Avalonia.Benchmarks/Layout/{CalendarBenchmark.cs => ControlsBenchmark.cs} (64%) diff --git a/tests/Avalonia.Benchmarks/Layout/CalendarBenchmark.cs b/tests/Avalonia.Benchmarks/Layout/ControlsBenchmark.cs similarity index 64% rename from tests/Avalonia.Benchmarks/Layout/CalendarBenchmark.cs rename to tests/Avalonia.Benchmarks/Layout/ControlsBenchmark.cs index c55912d94d..de40c247e6 100644 --- a/tests/Avalonia.Benchmarks/Layout/CalendarBenchmark.cs +++ b/tests/Avalonia.Benchmarks/Layout/ControlsBenchmark.cs @@ -7,12 +7,12 @@ using BenchmarkDotNet.Attributes; namespace Avalonia.Benchmarks.Layout { [MemoryDiagnoser] - public class CalendarBenchmark : IDisposable + public class ControlsBenchmark : IDisposable { private readonly IDisposable _app; private readonly TestRoot _root; - public CalendarBenchmark() + public ControlsBenchmark() { _app = UnitTestApplication.Start( TestServices.StyledWindow.With( @@ -38,6 +38,28 @@ namespace Avalonia.Benchmarks.Layout _root.LayoutManager.ExecuteLayoutPass(); } + [Benchmark] + [MethodImpl(MethodImplOptions.NoInlining)] + public void CreateButton() + { + var button = new Button(); + + _root.Child = button; + + _root.LayoutManager.ExecuteLayoutPass(); + } + + [Benchmark] + [MethodImpl(MethodImplOptions.NoInlining)] + public void CreateTextBox() + { + var textBox = new TextBox(); + + _root.Child = textBox; + + _root.LayoutManager.ExecuteLayoutPass(); + } + public void Dispose() { _app.Dispose();