Parallel processing .NET4.0并行扩展
我有一个方法,可以动态地对每个用户控件(.ascx)进行多次调用。这些调用依次为每个用户控件进行大量计算(3-4秒)。我能够添加一个并行。通过用户控件进行循环,并将时间缩短到5-6秒Parallel processing .NET4.0并行扩展,parallel-processing,Parallel Processing,我有一个方法,可以动态地对每个用户控件(.ascx)进行多次调用。这些调用依次为每个用户控件进行大量计算(3-4秒)。我能够添加一个并行。通过用户控件进行循环,并将时间缩短到5-6秒 Parallel.For(each user control ) { compute(); } List<int> compute() { for(i=0; i<999999;i++) {.....} } Parallel.For(每个用户控件) { comp
Parallel.For(each user control )
{
compute();
}
List<int> compute()
{
for(i=0; i<999999;i++)
{.....}
}
Parallel.For(每个用户控件)
{
compute();
}
列表计算()
{
对于(i=0;i这将取决于控制的数量
如果您有许多控件(超过2倍数量的CPU内核),嵌套Parallel.For循环可能会导致运行速度大大降低,因为您增加了无法解决的开销,因为您已经最大化了系统的并发性
但是,如果您只有一个或两个控件,并且系统中有4个或8个或更多内核,那么嵌套可能是有益的
如果有疑问,我建议尝试并分析它是否有用。只需确保在不同的硬件集上分析(以匹配您的部署目标),因为并发分析非常依赖于硬件
Parallel.For(each user control )
{
compute();
}
List<int> compute()
{
Parallel.For(i=0; i<999999; ()=>
{.....}
}