我有在 BenchmarkDotnet 上测试的代码..
然后我发现有些不对劲..
我的项目版本是
C# 11.0 .NET 7.0 Nuget 包 BenchMarkDotnet 0.13.5
ReadOnlyMemory<float> readOnlyFloats;
ReadOnlyMemory<double> readOnlyDoubles;
[GlobalSetup]
public void Setup()
{
var rand = new Random();
var floats = Enumerable.Range(0, ArrayLength).Select(a => rand.NextSingle()).ToArray();
var doubles = Enumerable.Range(0, ArrayLength).Select(a => rand.NextDouble()).ToArray();
readOnlyFloats = floats;
readOnlyDoubles = doubles;
}
[Benchmark]
public double Calc_WaveStatistic_Sum()
{
return readOnlyFloats.Span.Sum();
}
[Benchmark]
public double Calc_WaveStatistic_Sum_Double()
{
return readOnlyDoubles.Span.Sum();
}
[Benchmark]
public double Calc_WaveStatistic_Avg()
{
return readOnlyFloats.Span.Avg();
}
[Benchmark]
public double Calc_WaveStatistic_Avg_Double()
{
return readOnlyDoubles.Span.Avg();
} …Run Code Online (Sandbox Code Playgroud)