[SimpleJob(RuntimeMoniker.Net90)]
[SimpleJob(RuntimeMoniker.Net10_0)]
[MemoryDiagnoser]
[HardwareCounters(BenchmarkDotNet.Diagnosers.HardwareCounter.CacheMisses)]
public class BenchmarkArray
{
private const int Size = 10000;
[Benchmark(Baseline = true)]
public void ByRow()
{
var a = new int[Size, Size];
for (int i = 0; i < Size; i++)
{
for (int j = 0; j < Size; j++)
{
a[i, j] = 1;
}
}
}
[Benchmark]
public void ByColumn()
{
var a = new int[Size, Size];
for (int i = 0; i < Size; i++)
{
for (int j = 0; j < Size; j++)
{
a[j, i] = 1;
}
}
}
}
Я получил следующие результаты, которые не могу объяснить:
Метод
Задание
Время выполнения
Среднее
Ошибка
StdDev
Соотношение
RatioSD
CacheMiisses/Op
Gen0
Gen1
Gen2
Выделено
Коэффициент распределения
Я запускаю следующий тест только для того, чтобы оценить новую .NET 10: [code][SimpleJob(RuntimeMoniker.Net90)] [SimpleJob(RuntimeMoniker.Net10_0)] [MemoryDiagnoser] [HardwareCounters(BenchmarkDotNet.Diagnosers.HardwareCounter.CacheMisses)] public class BenchmarkArray { private const int Size = 10000;
[Benchmark(Baseline = true)] public void ByRow() { var a = new int[Size, Size];
for (int i = 0; i < Size; i++) { for (int j = 0; j < Size; j++) { a[i, j] = 1; } } }
[Benchmark] public void ByColumn() { var a = new int[Size, Size];
for (int i = 0; i < Size; i++) { for (int j = 0; j < Size; j++) { a[j, i] = 1; } } } } [/code] Я получил следующие результаты, которые не могу объяснить: [img]https://i.sstatic.net/51AzDOvH.png[/img]
Метод Задание Время выполнения Среднее Ошибка StdDev Соотношение RatioSD CacheMiisses/Op Gen0 Gen1 Gen2 Выделено Коэффициент распределения