diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
index 1d987e2238..c16b89e0b6 100644
--- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
+++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
@@ -49,6 +49,7 @@
+
diff --git a/tests/Avalonia.Benchmarks/Base/Properties.cs b/tests/Avalonia.Benchmarks/Base/Properties.cs
new file mode 100644
index 0000000000..0a020961d5
--- /dev/null
+++ b/tests/Avalonia.Benchmarks/Base/Properties.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Reactive.Subjects;
+using BenchmarkDotNet.Attributes;
+
+namespace Avalonia.Benchmarks.Base
+{
+ [MemoryDiagnoser]
+ public class AvaloniaObjectBenchmark
+ {
+ private Class1 target = new Class1();
+ private Subject intBinding = new Subject();
+
+ public AvaloniaObjectBenchmark()
+ {
+ target.SetValue(Class1.IntProperty, 123);
+ }
+
+ [Benchmark]
+ public void ClearAndSetIntProperty()
+ {
+ target.ClearValue(Class1.IntProperty);
+ target.SetValue(Class1.IntProperty, 123);
+ }
+
+ [Benchmark]
+ public void BindIntProperty()
+ {
+ using (target.Bind(Class1.IntProperty, intBinding))
+ {
+ for (var i = 0; i < 100; ++i)
+ {
+ intBinding.OnNext(i);
+ }
+ }
+ }
+
+ class Class1 : AvaloniaObject
+ {
+ public static readonly AvaloniaProperty IntProperty =
+ AvaloniaProperty.Register("Int");
+ }
+ }
+}