Ben*_*Ben 6 .net c# vb.net parallel-processing
我被要求展示Parallelism的好处和局限,并对其进行评估,以便在我们公司内部使用.我们主要是面向数据的业务,基本上从数据库加载对象,然后通过一些业务逻辑,显示给用户,然后保存回数据库.在我看来,管道中并没有太多可以从并行运行中获益,但对于这个概念来说还是比较新的,我可能完全错了.这条简单的管道是否会受益于并行运行?有没有关于如何实现这种编程风格的指导方针?
此外,是否有任何工具(最好是与VS2010一起提供)可以显示瓶颈出现的位置,并且能够直观地显示当我在运行给定量的循环的简单应用程序上单击"开始"时发生了什么(写成简单的数学循环,例如对于i作为整数= 1到1000 - 做一些计算)并行,然后串联?
我需要能够使用体面的分析工具来显示差异.
是的,即使从这个简单的模型中,您也可以从并行性中受益匪浅。
举例来说,在加载数据期间,您正在执行以下操作:
foreach(var datarow in someDataSet)
{
//put your data into some business objects here
}
Run Code Online (Sandbox Code Playgroud)
您可以通过执行以下操作来优化并行性:
Parrallel.ForEach(someDataSet, datarow =>
{
//put your data into some business objects here
});
Run Code Online (Sandbox Code Playgroud)
这可以极大地提高您的性能,具体取决于您在此处理的数据量。
现在,每个数据行将被异步处理,而不是像典型的 foreach 循环那样按顺序处理。
我对您的建议是在像这样简单的示例上运行一些简单的性能测试,然后看看您会得到什么样的结果。将其绘制在电子表格或其他东西中,然后向您的团队展示。您可能会对得到的结果感到惊讶。
归档时间: |
|
查看次数: |
649 次 |
最近记录: |