彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 计算机编程 2019-11-28 06:42 的文章
当前位置: 彩世界开奖app官网 > 计算机编程 > 正文

大叔也说并行和串行`性能提升N倍(N由操作系统位

简短的测量试验代码

老伯也说并行和串行`品质升高N倍(N由操作系统位数和cpu核数决定),品质进步n

回去目录

相互是.net4.5主打客车本事,同期被卷入到了System.Threading.Tasks命名空间下,对外提供了静态类Parallel,大家得以一向运用它的静态方法,它可以相互叁个信托数组,只怕三个IEnumerable的迭代,而明日尤为重要通过二个拜候数据库的代码,来讲说并发Parallel对全体程序的晋级是那么大,大家重视从数据库连接数和程序运维时间上就能够很清晰的看到功用。

大致的测量试验代码

       [TestMethod]
        public void Read()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            var actions = new List<Action>();

            for (int i = 0; i < 1000; i  )
            {
                actions.Add(() =>
                {
                    using (var db = new am20160316Entities())
                    {
                        var repository = new Lind.DDD.Repositories.EF.EFRepository<ad_contract>(db);
                        var list = repository.GetModel().ToList();
                    }
                });
            }
            Parallel.Invoke(actions.ToArray());
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
        }

地方代码为并行实践[可用的线程数据人机联作](并非说1000个任务,就务须开1000个线程去干这件事,由于.net本身也线程池的概念,全部它会基于系统利用状态去为大家以此进程分配,如若您的各个地方面伏乞必要.net分配越多的线程,那就才会现时有多少个线程运营(纵然是连接数据库,它和你多少连接串的马克斯PoolSize和MinPoolSize都是关联的卡塔 尔(英语:State of Qatar)。

前后相继与服务器此前的连天

程序与数据库实行广播发表时,同一时间开了大器晚成部分连接,我们能够透过netstat -nba | findstr 192.168.2.123限令来查看与钦赐服务器通信的气象,当大家修改MinPooSize的时候,会影响那一个顺序与数据库构造建设通信的次数,当然还要创设通信次数更加的多,质量越好,当然那也要看数据库服务器的力量了,呵呵。

彩世界开奖app官网 1

骨子里,若是大家的次序是单线程串行推行的,上边这些图只要出示贰个移动的连天,质量与同不日常候10多少个三番两回,那一定是没有办法比的,那几个相当的轻易驾驭,就好像先10万的人过桥一下,大桥和独石桥以来,10万人经过的话,时间必然是不等同的,呵呵。

彩世界开奖app官网 2

地点是并行管理1000次一连的年华,3427纳秒,而对于单线程串行来讲,我们看一下它的管理时间

代码

       [TestMethod]
        public void SignalRead()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 1000; i  )
            {

                using (var db = new am20160316Entities())
                {
                    var repository = new Lind.DDD.Repositories.EF.EFRepository<ad_contract>(db);
                    var list = repository.GetModel().ToList();
                }
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
        }

与数据库创设单个连接

彩世界开奖app官网 3

程序运维的时刻

彩世界开奖app官网 4

透过上边包车型客车截图大家得以见到,串行比并行慢了足足1000多飞秒,这些数值会趁着并发量的晋级而上涨。

为此,在多核时代,在操作系统管理位数高的有时,大家相应尽大概多用并行!

多谢各位的阅读!

回来目录

重回目录 并行是.net4.5主打客车本事,同一时候被打包到了System.Th...

回去目录

事实上,假如大家的次序是单线程串行实行的,上边这么些图只要出示一个运动的接二连三,品质与同有时间10多少个一而再,那必然是没有办法比的,那些相当的轻便精通,好似先10万的人过桥一下,大桥和独木桥来讲,10万人经过的话,时间早晚是不平等的,呵呵。

彩世界开奖app官网 5

相互是.net4.5主打大巴本事,同期被打包到了System.Threading.Tasks命名空间下,对外提供了静态类Parallel,我们得以一贯运用它的静态方法,它能够并行三个信托数组,或然三个IEnumerable的迭代,而明日重要透过多少个访谈数据库的代码,来讲说并发Parallel对总体程序的升官是那么大,大家任重而道远从数据库连接数和程序运转时间上就可以很显明的收看效果。

上面代码为并行施行[可用的线程数据交互作用](并非说1000个职责,就非得开1000个线程去干那件事,由于.net本身也线程池的概念,全部它会基于系统使用景况去为大家那些进程分配,如若您的各位置号令须求.net分配越来越多的线程,那就才会现时有四个线程运转(借使是连连数据库,它和您多少连接串的马克斯PoolSize和MinPoolSize都是涉嫌的卡塔 尔(英语:State of Qatar)。

进而,在多核时期,在操作系统管理位数高的一代,大家应有尽量多用并行!

彩世界开奖app官网 6

彩世界开奖app官网 7

代码

程序与服务器从前的连接

上边是并行管理1000次三番若干回的时日,3427皮秒,而对此单线程串行来讲,大家看一下它的拍卖时间

程序运行的年华

前后相继与数据库举行电视发表时,同期开了有个别接连,大家得以因而netstat -nba | findstr 192.168.2.123指令来查阅与钦定服务器通信的情事,当大家改进MinPooSize的时候,会耳熟能详那个程序与数据库建设结构通信的次数,当然还要创立通讯次数越来越多,质量越好,当然那也要看数据库服务器的手艺了,呵呵。

与数据库创建单个连接

因此地点的截图大家能够观看,串行比并行慢了起码1000多飞秒,这么些数值会随着并发量的进级而上升。

       [TestMethod]
        public void Read()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            var actions = new List<Action>();

            for (int i = 0; i < 1000; i  )
            {
                actions.Add(() =>
                {
                    using (var db = new am20160316Entities())
                    {
                        var repository = new Lind.DDD.Repositories.EF.EFRepository<ad_contract>(db);
                        var list = repository.GetModel().ToList();
                    }
                });
            }
            Parallel.Invoke(actions.ToArray());
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
        }
       [TestMethod]
        public void SignalRead()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 1000; i  )
            {

                using (var db = new am20160316Entities())
                {
                    var repository = new Lind.DDD.Repositories.EF.EFRepository<ad_contract>(db);
                    var list = repository.GetModel().ToList();
                }
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
        }

回去目录

感激各位的开卷!

彩世界开奖app官网 8

本文由彩世界开奖app官网发布于计算机编程,转载请注明出处:大叔也说并行和串行`性能提升N倍(N由操作系统位

关键词: