continuity/Benchmarks/BinaryConversionBenchmarks.cs
Timothy Schenk 01a2588dc2
All checks were successful
Build, Package and Push Images / preprocess (push) Successful in 1s
Build, Package and Push Images / build (push) Successful in 29s
Build, Package and Push Images / sbom-scan (push) Successful in 32s
Build, Package and Push Images / sonarqube (push) Successful in 1m15s
Build, Package and Push Images / container-build (push) Successful in 1m24s
Build, Package and Push Images / container-sbom-scan (push) Successful in 2m17s
chore: .net 8 and extended pipeline support
ci: again

chore: dockerignore added

chore(deps): update dependency benchmarkdotnet to v0.13.10

Signed-off-by: noreply@rainote.dev

ci: dependency track can run on any branch

ci: first attempt docker image

ci: again

ci: some fixes

ci: idk

ci: does this help

ci: idk

ci: another one

ci:  forgot

ci: downgrade qemu setup

ci: downgrade..

ci: v1 includes docker

ci: rearrange

ci: idk what to do with this

ci: let's try cat

ci: alt

ci: depressing

ci: yikes

ci: ah come on

ci: let's try new version again

ci: again

ci: another one

ci: another one

ci: confusion

ci: try single

ci: aaaa

ci: one more time

ci: again

main (#69)

Reviewed-on: #69
Co-authored-by: Timothy Schenk <admin@rainote.dev>
Co-committed-by: Timothy Schenk <admin@rainote.dev>

chore: ci jobs expanded & .net 8 support

ci: branch name sanitization for docker

ci: another attempt

ci: forgot actor

chore: remove nuke remnants

chore(deps): update dependency dotnet-sdk to v7.0.403

Signed-off-by: noreply@rainote.dev

refactor: shared data into library

refactor: rewrite for packethandler/id map

chore: logging

chore: Sonar Warnings

chore: upgrade to .net8 image

chore: fetch all required information for characters

chore: upgrade to .net 8

ci: install .net 7.0 alongside 8.0 for sbom

fix: incorrect job

ci: let's try arm64 again

ci: adjust project for .net 8 support

chore: adjustments to composefile

chore: analyzer setup

chore: analyzer and project settings updated

chore: ci jobs expanded & .net 8 support
2023-11-08 10:09:10 +01:00

43 lines
1.2 KiB
C#

namespace Benchmarks;
using System.Security.Cryptography;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Order;
[SimpleJob(RuntimeMoniker.Net80)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net60)]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
[MemoryDiagnoser]
[ThreadingDiagnoser]
public class BinaryConversionBenchmarks
{
private byte[] _data = null!;
private int _offset;
[GlobalSetup]
public void Setup()
{
this._data = RandomNumberGenerator.GetBytes(4000);
this._offset = RandomNumberGenerator.GetInt32(0, 3500);
}
[Benchmark]
public short BitConverterTest() => BitConverter.ToInt16(this._data, this._offset);
[Benchmark]
public short BinaryReader()
{
using var ms = new MemoryStream(this._data);
using var reader = new BinaryReader(ms);
reader.BaseStream.Position = this._offset;
return reader.ReadInt16();
}
[Benchmark]
public short BinaryPrimitives() =>
System.Buffers.Binary.BinaryPrimitives.ReadInt16LittleEndian(
new ArraySegment<byte>(this._data, this._offset, sizeof(short)));
}