Browse Source

Add a benchmark case for affects render.

pull/7372/head
Dariusz Komosiński 4 years ago
parent
commit
6700fd851b
  1. 45
      tests/Avalonia.Benchmarks/Visuals/VisualAffectsRenderBenchmarks.cs

45
tests/Avalonia.Benchmarks/Visuals/VisualAffectsRenderBenchmarks.cs

@ -0,0 +1,45 @@
using Avalonia.Controls;
using Avalonia.Media;
using BenchmarkDotNet.Attributes;
namespace Avalonia.Benchmarks.Visuals;
[MemoryDiagnoser]
public class VisualAffectsRenderBenchmarks
{
private readonly TestVisual _target;
private readonly IPen _pen;
public VisualAffectsRenderBenchmarks()
{
_target = new TestVisual();
_pen = new Pen(Brushes.Black);
}
[Benchmark]
public void SetPropertyThatAffectsRender()
{
_target.Pen = _pen;
_target.Pen = null;
}
private class TestVisual : Visual
{
/// <summary>
/// Defines the <see cref="Pen"/> property.
/// </summary>
public static readonly StyledProperty<IPen> PenProperty =
AvaloniaProperty.Register<Border, IPen>(nameof(Pen));
public IPen Pen
{
get { return GetValue(PenProperty); }
set { SetValue(PenProperty, value); }
}
static TestVisual()
{
AffectsRender<TestVisual>(PenProperty);
}
}
}
Loading…
Cancel
Save