about summary refs log tree commit diff
path: root/Utilities/LibMatrix.EventTypes.Benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/LibMatrix.EventTypes.Benchmark')
-rw-r--r--Utilities/LibMatrix.EventTypes.Benchmark/LibMatrix.EventTypes.Benchmark.csproj24
-rw-r--r--Utilities/LibMatrix.EventTypes.Benchmark/Program.cs37
2 files changed, 61 insertions, 0 deletions
diff --git a/Utilities/LibMatrix.EventTypes.Benchmark/LibMatrix.EventTypes.Benchmark.csproj b/Utilities/LibMatrix.EventTypes.Benchmark/LibMatrix.EventTypes.Benchmark.csproj
new file mode 100644
index 0000000..b769cb7
--- /dev/null
+++ b/Utilities/LibMatrix.EventTypes.Benchmark/LibMatrix.EventTypes.Benchmark.csproj
@@ -0,0 +1,24 @@
+<Project Sdk="Microsoft.NET.Sdk">

+

+  <PropertyGroup>

+    <OutputType>Exe</OutputType>

+    <TargetFramework>net8.0</TargetFramework>

+    <ImplicitUsings>enable</ImplicitUsings>

+    <Nullable>enable</Nullable>

+  </PropertyGroup>

+

+  <ItemGroup>

+    <ProjectReference Include="..\..\LibMatrix.EventTypes.Abstractions\LibMatrix.EventTypes.Abstractions.csproj" />

+    <ProjectReference Include="..\..\LibMatrix.EventTypes.Spec\LibMatrix.EventTypes.Spec.csproj" />

+  </ItemGroup>

+

+  <ItemGroup>

+    <PackageReference Include="BenchmarkDotNet" Version="0.13.12" />

+  </ItemGroup>

+

+  <ItemGroup>

+    <Content Include="*.json">

+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>

+    </Content>

+  </ItemGroup>

+</Project>

diff --git a/Utilities/LibMatrix.EventTypes.Benchmark/Program.cs b/Utilities/LibMatrix.EventTypes.Benchmark/Program.cs
new file mode 100644
index 0000000..512c066
--- /dev/null
+++ b/Utilities/LibMatrix.EventTypes.Benchmark/Program.cs
@@ -0,0 +1,37 @@
+using System.Text.Json;

+using ArcaneLibs.Extensions;

+using BenchmarkDotNet.Attributes;

+using BenchmarkDotNet.Jobs;

+using BenchmarkDotNet.Running;

+using LibMatrix.EventTypes;

+using LibMatrix.EventTypes.Spec;

+

+BenchmarkRunner.Run<Tests>();

+

+[ShortRunJob]

+[MemoryDiagnoser]

+public class Tests {

+    // public MatrixEventCollection<MatrixEventContent> Members = [

+    //     new MatrixEvent<RoomMembershipEventContent>() {

+    //         Content = new() {

+    //             Membership = "join"

+    //         }

+    //     }

+    // ];

+

+    private static string eventJson = File.ReadAllText("test-event.json");

+    private static MatrixEvent<RoomMembershipEventContent> evt2 = JsonSerializer.Deserialize<MatrixEvent<RoomMembershipEventContent>>(eventJson);

+    [Benchmark]

+    public void Deserialise() {

+        JsonSerializer.Deserialize<MatrixEvent<RoomMembershipEventContent>>(eventJson);

+    }

+    [Benchmark]

+    public void Serialise() {

+        evt2.ToJson();

+    }

+    

+    [Benchmark]

+    public void Modify() {

+        evt2.Content.Membership = "meow";

+    }

+}
\ No newline at end of file