广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Parallel.For循环与普通for循环的性能比较
  • 708
分享到

Parallel.For循环与普通for循环的性能比较

2024-04-02 19:04:59 708人浏览 泡泡鱼
摘要

一、Parallel.For循环优于For的情况 代码: #region Parallel.For public static void Parall

一、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的情况

代码:

        #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循环比较的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Parallel.For循环与普通for循环的性能比较

本文链接: https://www.lsjlt.com/news/146364.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作