1 changed files with 52 additions and 0 deletions
@ -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…
Reference in new issue