69 lines
1.3 KiB
C#

using BenchmarkDotNet.Attributes;
using SoulstormReplayReader.Core;
namespace SoulstormReplayReader.Benchmarks;
// [SimpleJob(RuntimeMoniker.Net80)]
[MemoryDiagnoser]
public class Benchy
{
private const string ReplaysDir = "./Replays/";
public SsReplayReader SsReplayReader { get; set; }
[Params(
"1v1.rec"
,
"4p_withbots.rec"
,
"2v2v2.rec"
,
"4v4.rec"
)]
public string Replay;
[Params(
false
,
true
)]
public bool SkipImages;
[GlobalSetup]
public void Setup()
{
var memoryStream = new MemoryStream(File.ReadAllBytes(ReplaysDir + Replay), false);
SsReplayReader = new SsReplayReader(memoryStream) { SkipImages = SkipImages };
}
// [Benchmark]
// public void ReadHeader()
// {
// SsReplayReader.ReadHeader();
// }
//
// [Benchmark]
// public void ReadInfo()
// {
// SsReplayReader.ReadInfo();
// }
[Benchmark]
public void ReadFull()
{
SsReplayReader.ReadFull();
}
[Benchmark]
public void ReadFullWithoutOrdinaryTicks()
{
SsReplayReader.ReadFull(false);
}
[GlobalCleanup]
public void Cleanup()
{
SsReplayReader.Dispose();
}
}