mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-15 00:15:15 +08:00
40 lines
937 B
C#
40 lines
937 B
C#
using BenchmarkDotNet.Attributes;
|
|
using BenchmarkDotNet.Jobs;
|
|
using System;
|
|
|
|
|
|
namespace MQTTnet.Benchmarks
|
|
{
|
|
[SimpleJob(RuntimeMoniker.Net60)]
|
|
[RPlotExporter, RankColumn]
|
|
[MemoryDiagnoser]
|
|
public class MemoryCopyBenchmark
|
|
{
|
|
const int max_length = 1024 * 8;
|
|
private byte[] source;
|
|
private byte[] target;
|
|
|
|
[Params(64 - 1, 128 - 1, 256 - 1, 512 - 1, 1024 - 1, 2048 - 1, 5096 - 1)]
|
|
public int Length { get; set; }
|
|
|
|
[GlobalSetup]
|
|
public void Setup()
|
|
{
|
|
source = new byte[max_length];
|
|
target = new byte[max_length];
|
|
}
|
|
|
|
[Benchmark(Baseline = true)]
|
|
public void Array_Copy()
|
|
{
|
|
Array.Copy(source, 0, target, 0, Length);
|
|
}
|
|
|
|
[Benchmark]
|
|
public void Memory_Copy()
|
|
{
|
|
MQTTnet.Internal.MqttMemoryHelper.Copy(source, 0, target, 0, Length);
|
|
}
|
|
|
|
}
|
|
} |