48 lines
1.0 KiB
C#
48 lines
1.0 KiB
C#
using BenchmarkDotNet.Attributes;
|
|
using BenchmarkDotNet.Running;
|
|
using MatFileHandler;
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace Benchmarks;
|
|
|
|
[MemoryDiagnoser]
|
|
public class BigWriteBenchmark
|
|
{
|
|
private IMatFile? matFile;
|
|
|
|
[GlobalSetup]
|
|
public void GlobalSetup()
|
|
{
|
|
var m = 1000;
|
|
var n = 10000;
|
|
var builder = new DataBuilder();
|
|
var array = builder.NewArray<double>(m, n);
|
|
var random = new Random(1);
|
|
for (var i = 0; i < m * n; i++)
|
|
{
|
|
array[i] = random.NextDouble();
|
|
}
|
|
|
|
var variable = builder.NewVariable("test", array);
|
|
matFile = builder.NewFile(new[] { variable });
|
|
}
|
|
|
|
[Benchmark]
|
|
public void V1()
|
|
{
|
|
using var stream = new MemoryStream();
|
|
var writer = new MatFileWriter(stream);
|
|
writer.Write(matFile!);
|
|
}
|
|
}
|
|
|
|
internal class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
Console.WriteLine("Hello, World!");
|
|
BenchmarkRunner.Run<BigWriteBenchmark>();
|
|
}
|
|
}
|