Skip to content

Commit

Permalink
Add ImageFramePacket benchmark
Browse files Browse the repository at this point in the history
This is based from our test case, could add an actual image later

Signed-off-by: Ayase Minori <ayane@vignetteapp.org>
  • Loading branch information
sr229 committed Mar 30, 2024
1 parent 9ac8cc2 commit 6c4654b
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 11 deletions.
13 changes: 2 additions & 11 deletions Mediapipe.Net.Benchmarks/FloatPacketPerformanceBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Engines;
using BenchmarkDotNet.Running;
using Mediapipe.Net.Framework.Packets;

namespace Mediapipe.Net.Benchmarks
{
[SimpleJob(RunStrategy.ColdStart, launchCount: 50)]
[SimpleJob(RunStrategy.Throughput, launchCount: 50)]
[MinColumn, MaxColumn, MeanColumn, MedianColumn]
public class FloatPacketPerformanceBenchmark
{
Expand All @@ -24,7 +23,7 @@ public void InstantiateFloatPacket()
}

[Benchmark]
public void InstatiateFloatArrayPacket()
public void InstantiateFloatArrayPacket()
{
var randomArray = new float[10];
for (var i = 0; i < randomArray.Length; i++)
Expand All @@ -38,12 +37,4 @@ public void InstatiateFloatArrayPacket()
}

}

public class Program
{
public static void Main(string[] args)
{
var summary = BenchmarkRunner.Run<FloatPacketPerformanceBenchmark>();
}
}
}
26 changes: 26 additions & 0 deletions Mediapipe.Net.Benchmarks/ImageFramePacketPerformanceBenchmark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright (c) homuler and The Vignette Authors
// This file is part of MediaPipe.NET.
// MediaPipe.NET is licensed under the MIT License. See LICENSE for details.

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Engines;
using Mediapipe.Net.Framework.Format;
using Mediapipe.Net.Framework.Packets;
using Mediapipe.Net.Framework.Protobuf;

namespace Mediapipe.Net.Benchmarks
{
[SimpleJob(RunStrategy.Throughput, launchCount: 50)]
[MinColumn, MaxColumn, MeanColumn, MedianColumn]
public class ImageFramePacketPerformanceBenchmark
{
[Benchmark]
public void InstantiateAndConsumeImageFramePacket()
{
using var packet = new ImageFramePacket(new ImageFrame(ImageFormat.Types.Format.Sbgra, 50, 50));
using var statusOrImageFrame = packet.Consume();

statusOrImageFrame.Ok();
}
}
}
21 changes: 21 additions & 0 deletions Mediapipe.Net.Benchmarks/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright (c) homuler and The Vignette Authors
// This file is part of MediaPipe.NET.
// MediaPipe.NET is licensed under the MIT License. See LICENSE for details.

using BenchmarkDotNet.Running;

namespace Mediapipe.Net.Benchmarks
{
public class Program
{
public static void Main(string[] args)
{
var switcher = new BenchmarkSwitcher(new[]
{
typeof(FloatPacketPerformanceBenchmark), typeof(ImageFramePacketPerformanceBenchmark)
});

switcher.Run(args);
}
}
}

0 comments on commit 6c4654b

Please sign in to comment.