在这里我们将介绍Visual Studio 2010并行运算的原理,希望通过本文能对大家了解Visual Studio 2010并行运算。这也是大家比价关心的热点。

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元葫芦岛做网站,已为上家服务,为葫芦岛各地企业和个人服务,联系电话:028-86922220
Visual Studio 2010 Beta2&.Net 4.0的Beta2相比Beta1在性能上有了很大的改进,已经基本可以使用了。.NET 4.0给我们带来许多新特性,如动态类型、云平台、并行运算等。本文讨论一下.NET 4.0的并行运算。
其实并行运算并不是在.Net 4.0才有的。大家都知道,通过增加CPU的主频可以提高CPU的性能,但由于设计的限制,主频是不可能无限制的提高。这个时候,把提高性能的方式转向使用多个心(多核),现在的电脑几乎都是多核的。但在软件中并还没有跟上这个节奏,大多数软件还是采用传统的方式,并没有很好的发挥多核的优势。
微软的并行运算平台(Microsoft’s Parallel Computing Platform (PCP))提供了这样一个工具,让软件开发人员可以有效的使用多核提供的性能。本文就进行一个简单的测试,来体验Visual Studio 2010并行运算的性能。
1. 新建一个List,并在开始时初始化
- public static IList<int> Datas = new List<int>();
 - static void Main(string[] args)
 - {
 - InitializeData();
 - Console.Read();
 - }
 - ///
 - /// 初始化数据
 - ///
 - private static void InitializeData()
 - {
 - Datas.Clear();
 - for (int i = 0; i < 20; i++)
 - {
 - Datas.Add(i);
 - }
 - }
 
2.设计耗时的方法,并来在各种运算方式中调用
- ///
 - /// 获得数据
 - ///
 - ///
 - ///
 - private static int GetData(int i)
 - {
 - System.Threading.Thread.Sleep(100);
 - return i;
 - }
 3. 设计一般的运算方式,调用GetData方法
- ///
 - /// 采用一般for循环
 - ///
 - private static void UseFor()
 - {
 - for (int i = 0; i < 20; i++)
 - {
 - GetData(Datas[i]);
 - }
 - }
 - ///
 - /// 采用一般的foreach
 - ///
 - private static void UseForeach()
 - {
 - foreach (var item in Datas)
 - {
 - GetData(item);
 - }
 - }
 4.采用并行运算的方式,调用GetData方法
- ///
 - /// 采用并行for循环
 - ///
 - private static void UseParalleFor()
 - {
 - Parallel.For(0, 20, (i) =>
 - {
 - GetData(Datas[i]);
 - });
 - }
 - ///
 - /// 采用并行的foreach
 - ///
 - private static void UserParalleForeach()
 - {
 - Parallel.ForEach(Datas, (t) => { GetData(t); });
 - }
 5.最后采用老赵设计的CodeTimer来比较每一种运算方式的耗时,在Main函数中加入测试代码
- static void Main(string[] args)
 - {
 - InitializeData();
 - CodeTimer.Initialize();
 - CodeTimer.WriteDebug("一般for循环:", 5, () => { UseFor(); });
 - CodeTimer.WriteDebug("一般foreach循环:", 5, () => { UseForeach(); });
 - CodeTimer.WriteDebug("并行for循环:", 5, () => { UseParalleFor(); });
 - CodeTimer.WriteDebug("并行foreach循环:", 5, () => { UserParalleForeach(); });
 - Console.Read();
 - }
 6.运算结果:
可以看出,并行运算提高的性能还是比较明显的。
下面我们把GetData方法修改一下,把线程延迟的的代码去掉
- ///
 - /// 获得数据
 - ///
 - ///
 - ///
 - private static int GetData(int i)
 - {
 - // System.Threading.Thread.Sleep(100);
 - return i;
 - }
 再次运行
可以看出,这时候并行运算不但没降低消耗的时间,反而用了更多的时间。经过多次测试发现,采用并行运算跟程序的设计结构有很大的关系,如果设计不合理,反而会消耗更多时间。
本文标题:浅谈VisualStudio2010并行运算原理
链接分享:http://www.csdahua.cn/qtweb/news18/105718.html网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网