并行开发一直是程序员在开发项目中遇到的一道坎,但为了迎合硬件的升级,面对高端多核的处理器,并行编程势在必行。在.NET平台下的开发支持并行模式,下面用一个实际项目说明并行的高效率和神奇之处。
在优化中国铁建企业经营管理系统时,遇到一个迫切需要解决的问题.就是报表处理响应时间的问题,在系统最初数据较少,导出报表响应时间较快。但是随着数据的不断扩充,就一个分局的数据导出(大概600条)也需要5分钟左右,当然这个和电脑的配置相关。若是总股份公司的项目报表导出(6000条左右),那个时间在普通的电脑上根本就是漫长的等待。于此,在中国铁建股份公司的高端配置服务器上导出的时间也需要很久。系统在报表处理这块就需要优化,我的解决方案就是并行。
由于总公司的报表是由一个个分局(子公司)的报表合成的,原来的编程是根据程序的串行原则运行,就是完成一个子公司的报表后,才能继续进行下一个子公司的报表操作。总公司一共有大概50个左右的分局和项目指挥部,这样就严重的增长了报表生产导出的时间。利用并行,就是把原来的子公司让他们在几乎(这个需要看看.NET并行的运行原则,他们在并行时还是有很小的时间间隔)同一时间处理报表,开始运行。把原来需要50次左右的时间段变为一次(所需时间最慢开始,最后结束的那次)。这样就大大的加快了报表的处理速度。但是并行并不是很好控制,我测试,探索了很久才解决数据共享,数据冲突的问题。
当然,并行开发需要利用程序调用系统的多核处理器,这样在cpu的资源占用上特别的高,我的项目在报表导出时基本是cpu占用是100%。以空间换取时间这是必须要接受的。不过,在真正的多核高端服务器的硬件上,结合并行程序的改良,总公司的报表导出时间问题终于得到解决了。
以下有一些过程截图,值得一说的是报表生成时间的过程跟踪截图,它基本反映了并行程序在运行过程中的记录。
图1 总股份公司的报表导出时间跟踪
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
新闻热点
疑难解答