Browse Source

Add basic benchmarks for Is and Class selectors.

pull/3474/head
Dariusz Komosinski 7 years ago
parent
commit
46781ad908
  1. 52
      tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs

52
tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs

@ -0,0 +1,52 @@
using Avalonia.Controls;
using Avalonia.Styling;
using BenchmarkDotNet.Attributes;
namespace Avalonia.Benchmarks.Styling
{
[MemoryDiagnoser]
public class SelectorBenchmark
{
private readonly Control _notMatchingControl;
private readonly Calendar _matchingControl;
private readonly Selector _isCalendarSelector;
private readonly Selector _classSelector;
public SelectorBenchmark()
{
_notMatchingControl = new Control();
_matchingControl = new Calendar();
const string className = "selector-class";
_matchingControl.Classes.Add(className);
_isCalendarSelector = Selectors.Is<Calendar>(null);
_classSelector = Selectors.Class(null, className);
}
[Benchmark]
public SelectorMatch IsSelector_NoMatch()
{
return _isCalendarSelector.Match(_notMatchingControl);
}
[Benchmark]
public SelectorMatch IsSelector_Match()
{
return _isCalendarSelector.Match(_matchingControl);
}
[Benchmark]
public SelectorMatch ClassSelector_NoMatch()
{
return _classSelector.Match(_notMatchingControl);
}
[Benchmark]
public SelectorMatch ClassSelector_Match()
{
return _classSelector.Match(_matchingControl);
}
}
}
Loading…
Cancel
Save