benchmark/ICSharpCode.SharpZipLib.Benchmark/BZip2/BZip2InputStream.cs (33 lines of code) (raw):
using System;
using System.IO;
using BenchmarkDotNet.Attributes;
namespace ICSharpCode.SharpZipLib.Benchmark.BZip2
{
[Config(typeof(MultipleRuntimes))]
public class BZip2InputStream
{
private byte[] compressedData;
public BZip2InputStream()
{
var outputMemoryStream = new MemoryStream();
using (var outputStream = new SharpZipLib.BZip2.BZip2OutputStream(outputMemoryStream))
{
var random = new Random(1234);
var inputData = new byte[1024 * 1024 * 30];
random.NextBytes(inputData);
var inputMemoryStream = new MemoryStream(inputData);
inputMemoryStream.CopyTo(outputStream);
}
compressedData = outputMemoryStream.ToArray();
}
[Benchmark]
public void DecompressData()
{
var memoryStream = new MemoryStream(compressedData);
using (var inputStream = new SharpZipLib.BZip2.BZip2InputStream(memoryStream))
{
inputStream.CopyTo(Stream.Null);
}
}
}
}