zoukankan      html  css  js  c++  java
  • c# Parallel并行运算

    Parallel这个类可以调度你的电脑中的所有CPU共同运算。我做了一个并行运算与普通运算的对比,并记录了时间

    并行运算方法:

    string str = "";
                DataTable dt=new DataTable();
                dt.Columns.Add("name", typeof(System.String));
                
                for (int i = 0; i <10000; i++)
                {
                    DataRow drt = dt.NewRow();
                    drt[0] = "hh"+i;
                    dt.Rows.Add(drt);
                }
                DataRow[] rules = new DataRow[dt.Rows.Count];
                dt.Rows.CopyTo(rules, 0);
                // 第一个
                Stopwatch watch1 = new Stopwatch();
                watch1.Start();
                Parallel.ForEach<DataRow>(rules, (dr) =>
                {
                    str += dr[0];
                    str += dr[0];
                });
                watch1.Stop();
                txtWat1.Text = watch1.ElapsedMilliseconds.ToString();

    普通运算的方法

    // 第二个
                Stopwatch watch2 = new Stopwatch();
                watch2.Start();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow dr = dt.Rows[i];
                    str += dr[0];
                    str += dr[0];
                }
                watch2.Stop();
                txtWat2.Text = watch2.ElapsedMilliseconds.ToString();

    最后的时间对比

    可以知道用Parallel.ForEach<DataRow>这个方法算毕普通的要快很多。不过不能所有的循环都用这个方法,因为这个方法增加了调度CPU的时间。所以不适合少量的数据。更加适合大量数据的计算

  • 相关阅读:
    Dubbo
    支持微服务架构落地的Java框架
    thinkphp6的主要特性
    thinkphp5的主要特性
    RPC
    HTTP1.0 HTTP1.1 HTTP2.0 主要特性对比
    RabbitMQ 生产环境配置详解
    分布式AKF拆分原则
    通过Hystrix了解分布式接口级的高可用
    Python中使用grpc与consul
  • 原文地址:https://www.cnblogs.com/honghong75042/p/3156090.html
Copyright © 2011-2022 走看看