如何全面评估长尾词Parallel.For循环与普通for循环性能比较的优劣?

2026-03-31 08:511阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计463个文字,预计阅读时间需要2分钟。

如何全面评估长尾词Parallel.For循环与普通for循环性能比较的优劣?

Parallel.For 循环优于 For 循环的情况及代码示例:

1. 并行处理需求:当任务可以并行执行且处理器核心数较多时,使用 Parallel.For 可以显著提高效率。 csharp Parallel.For(0, numbers.Length, i=> { numbers[i]=numbers[i] * numbers[i]; });

2. 大量数据操作:处理大量数据时,Parallel.For 可以利用多核优势,减少总体执行时间。 csharp Parallel.For(0, largeDataArray.Length, i=> { largeDataArray[i]=someComplexOperation(largeDataArray[i]); });

3. 任务分解:当任务可以自然分解为多个独立子任务时,Parallel.For 非常有效。 csharp Parallel.For(0, tasks.Count, i=> { Task task=tasks[i]; task.Start(); });

一、Parallel.For循环优于For的情况

代码:

#region Parallel.For public static void ParallelForTest() { //标准For var dt = DateTime.Now; var rand = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 20; i++) { Thread.Sleep(rand.Next(100, 1000)); } var standerTime = (DateTime.Now - dt).TotalMilliseconds; Console.WriteLine("標準的for循環,耗時{0}毫秒", standerTime); //並行For dt = DateTime.Now; Parallel.For(0, 20, i => { Thread.Sleep(rand.Next(100, 1000)); }); var parallelTime = (DateTime.Now - dt).TotalMilliseconds; Console.WriteLine("并行的for循環,耗時{0}毫秒", parallelTime); Console.WriteLine(); if (standerTime <= parallelTime) { Console.WriteLine("----------标准的for循環節省{0}毫秒----------", (parallelTime - standerTime)); } else { Console.WriteLine("----------并行的for循環節省{0}毫秒----------", (standerTime - parallelTime)); } Console.ReadKey(); } #endregion

运行结果:

二、For循环优于Parallel.For的情况

代码:

如何全面评估长尾词Parallel.For循环与普通for循环性能比较的优劣?

#region For public static void ForTest() { Stopwatch sw = new Stopwatch(); sw.Start(); Console.WriteLine("Parallel.For"); ParallelLoopResult result = Parallel.For(0, 10000, i => { //打印空 Console.Write(""); }); sw.Stop(); TimeSpan ts2 = sw.Elapsed; Console.WriteLine("Parallel.For總共花費{0}ms.", ts2.TotalMilliseconds); //簡單的For循環 Stopwatch sw_Eq = new Stopwatch(); sw_Eq.Start(); Console.WriteLine("For"); for (int i = 0; i < 10000; i++) { //打印空 Console.Write(""); } sw_Eq.Stop(); TimeSpan tssw_Eq = sw_Eq.Elapsed; Console.WriteLine("for總共花費{0}ms.", tssw_Eq.TotalMilliseconds); Console.ReadKey(); } #endregion

运行结果:

到此这篇关于Parallel.For循环与普通for循环比较的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

标签:性能

本文共计463个文字,预计阅读时间需要2分钟。

如何全面评估长尾词Parallel.For循环与普通for循环性能比较的优劣?

Parallel.For 循环优于 For 循环的情况及代码示例:

1. 并行处理需求:当任务可以并行执行且处理器核心数较多时,使用 Parallel.For 可以显著提高效率。 csharp Parallel.For(0, numbers.Length, i=> { numbers[i]=numbers[i] * numbers[i]; });

2. 大量数据操作:处理大量数据时,Parallel.For 可以利用多核优势,减少总体执行时间。 csharp Parallel.For(0, largeDataArray.Length, i=> { largeDataArray[i]=someComplexOperation(largeDataArray[i]); });

3. 任务分解:当任务可以自然分解为多个独立子任务时,Parallel.For 非常有效。 csharp Parallel.For(0, tasks.Count, i=> { Task task=tasks[i]; task.Start(); });

一、Parallel.For循环优于For的情况

代码:

#region Parallel.For public static void ParallelForTest() { //标准For var dt = DateTime.Now; var rand = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 20; i++) { Thread.Sleep(rand.Next(100, 1000)); } var standerTime = (DateTime.Now - dt).TotalMilliseconds; Console.WriteLine("標準的for循環,耗時{0}毫秒", standerTime); //並行For dt = DateTime.Now; Parallel.For(0, 20, i => { Thread.Sleep(rand.Next(100, 1000)); }); var parallelTime = (DateTime.Now - dt).TotalMilliseconds; Console.WriteLine("并行的for循環,耗時{0}毫秒", parallelTime); Console.WriteLine(); if (standerTime <= parallelTime) { Console.WriteLine("----------标准的for循環節省{0}毫秒----------", (parallelTime - standerTime)); } else { Console.WriteLine("----------并行的for循環節省{0}毫秒----------", (standerTime - parallelTime)); } Console.ReadKey(); } #endregion

运行结果:

二、For循环优于Parallel.For的情况

代码:

如何全面评估长尾词Parallel.For循环与普通for循环性能比较的优劣?

#region For public static void ForTest() { Stopwatch sw = new Stopwatch(); sw.Start(); Console.WriteLine("Parallel.For"); ParallelLoopResult result = Parallel.For(0, 10000, i => { //打印空 Console.Write(""); }); sw.Stop(); TimeSpan ts2 = sw.Elapsed; Console.WriteLine("Parallel.For總共花費{0}ms.", ts2.TotalMilliseconds); //簡單的For循環 Stopwatch sw_Eq = new Stopwatch(); sw_Eq.Start(); Console.WriteLine("For"); for (int i = 0; i < 10000; i++) { //打印空 Console.Write(""); } sw_Eq.Stop(); TimeSpan tssw_Eq = sw_Eq.Elapsed; Console.WriteLine("for總共花費{0}ms.", tssw_Eq.TotalMilliseconds); Console.ReadKey(); } #endregion

运行结果:

到此这篇关于Parallel.For循环与普通for循环比较的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

标签:性能