Я думаю, что ваш тест полностью испорчен, и я получаю противоположные результаты.
Для моей настройки
int collectionSize = 10000;
//populate array
_array = new int[collectionSize];
for (int i = 0; i < collectionSize; i++)
{
_array[i] = i;
}
_dictionary = new Dictionary<int, int>();
for (int i = 0; i < collectionSize; i++)
{
_dictionary.Add(i, i);
}
Код
[Test("List", "", true)]
public object Test1(int[] input, int scale)
{
for (int i = 0; i < input.Length; i++)
{
foreach (int item in _array)
{
if (collectionSize - 1 == item)
{
break;
}
}
}
return null;
}
[Test("Dictionary", "", false)]
public object Test2(int[] input, int scale)
{
for (int i = 0; i < input.Length; i++)
{
var s = _dictionary[input[i]];
}
return null;
}
Тесты
Я запускаю каждый тест 100 раз, Сбор мусора перед каждым запуском, выполняю прогрев и запускаю 1000 случайных чисел в диапазоне от 0 до 255 для тестирования (в режиме выпуска).
┌──────────────────┬────────────────────────────────────────────┐
│ Test Mode │ Release (64Bit) │
│ Test Framework │ .NET Framework 4.7.1 (CLR 4.0.30319.42000) │
╞══════════════════╪════════════════════════════════════════════╡
│ Operating System │ Microsoft Windows 10 Pro │
│ Version │ 10.0.17134 │
├──────────────────┼────────────────────────────────────────────┤
│ CPU System │ Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz │
│ CPU Description │ Intel64 Family 6 Model 42 Stepping 7 │
├──────────────────┼──────────┬──────────────────┬──────────────┤
│ Cores (Threads) │ 4 (8) │ Architecture │ x64 │
│ Clock Speed │ 3401 MHz │ Bus Speed │ 100 MHz │
│ L2Cache │ 1 MB │ L3Cache │ 8 MB │
└──────────────────┴──────────┴──────────────────┴──────────────┘
Результаты
┌── Standard input ────────────────────────────────────────────────────────┐
│ Value │ Average │ Fastest │ Cycles │ Garbage │ Test │ Gain │
├── Scale 1,000 ────────────────────────────────────────────── 0.784 sec ──┤
│ Dictionary │ 13.680 µs │ 13.208 µs │ 50.621 K │ 0.000 B │ N/A │ 99.76 % │
│ List │ 5.706 ms │ 5.485 ms │ 19.406 M │ 0.000 B │ Base │ 0.00 % │
└──────────────────────────────────────────────────────────────────────────┘