Parallel.For循環(huán)與普通for循環(huán)的性能比較
更新時(shí)間:2022年04月18日 14:10:46 作者:農(nóng)碼一生
這篇文章介紹了Parallel.For循環(huán)與普通for循環(huán)的性能比較,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
一、Parallel.For循環(huán)優(yōu)于For的情況
代碼:
#region Parallel.For public static void ParallelForTest() { //標(biāo)準(zhǔn)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("標(biāo)準(zhǔn)的for循環(huán),耗時(shí){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循環(huán),耗時(shí){0}毫秒", parallelTime); Console.WriteLine(); if (standerTime <= parallelTime) { Console.WriteLine("----------標(biāo)準(zhǔn)的for循環(huán)節(jié)省{0}毫秒----------", (parallelTime - standerTime)); } else { Console.WriteLine("----------并行的for循環(huán)節(jié)省{0}毫秒----------", (standerTime - parallelTime)); } Console.ReadKey(); } #endregion
運(yùn)行結(jié)果:
二、For循環(huán)優(yōu)于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總共花費(fèi){0}ms.", ts2.TotalMilliseconds); //簡(jiǎn)單的For循環(huán) 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總共花費(fèi){0}ms.", tssw_Eq.TotalMilliseconds); Console.ReadKey(); } #endregion
運(yùn)行結(jié)果:
到此這篇關(guān)于Parallel.For循環(huán)與普通for循環(huán)比較的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解C#如何實(shí)現(xiàn)讀寫(xiě)ini文件
.ini?文件是Initialization?File的縮寫(xiě),即初始化文件,是windows的系統(tǒng)配置文件所采用的存儲(chǔ)格式,統(tǒng)管windows的各項(xiàng)配置。本文將介紹C#讀寫(xiě)ini文件的方法,需要的可以參考一下2022-01-01C#中AutoResetEvent控制線程用法小結(jié)
本文主要來(lái)自一道面試題,由于之前對(duì)AutoResetEvent的概念比較模糊,面試題題目很簡(jiǎn)潔:兩個(gè)線程交替打印0~100的奇偶數(shù),你可以先動(dòng)手試試,我主要是嘗試在一個(gè)方法里面完成這個(gè)任務(wù),需要的朋友可以參考下2022-07-07c# 使用WebRequest實(shí)現(xiàn)多文件上傳
這篇文章主要介紹了c# 使用WebRequest實(shí)現(xiàn)多文件上傳的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03基于C#的socket編程的TCP異步的實(shí)現(xiàn)代碼
本篇文章主要介紹了基于C#的socket編程的TCP異步的實(shí)現(xiàn)代碼,詳解的講訴了TCP通信異步的實(shí)現(xiàn),有興趣的可以了解一下。2016-11-11