Почему параллельная версия была медленнее, чем последовательная версия в этом примере?
За последние несколько дней я немного узнал о параллелизме и наткнулся наэтот пример.
Я положил его из стороны в сторону с последовательным циклом for следующим образом:
<code>private static void NoParallelTest() { int[] nums = Enumerable.Range(0, 1000000).ToArray(); long total = 0; var watch = Stopwatch.StartNew(); for (int i = 0; i < nums.Length; i++) { total += nums[i]; } Console.WriteLine("NoParallel"); Console.WriteLine(watch.ElapsedMilliseconds); Console.WriteLine("The total is {0}", total); } </code>
Я был удивлен, увидев, что метод NoParallel завершил работу намного быстрее, чем приведенный на сайте параллельный пример.
У меня есть компьютер i5.
Я действительно думал, что параллельный метод закончится быстрее.
Есть ли разумное объяснение этому? Может я что то не так понял?