并行调用会降低分析器的速度吗?

时间:2012-07-20 13:14:06

标签: c# performance parallel-processing profiling

我的任务是找出我所分配的应用程序的一部分是如此之慢。我决定试用Redgate的 Ants Profiler 。在运行它时,大多数热点都包含了原始开发人员写为Parallel.For()循环的循环。

为了看看它会产生什么影响,我用标准for-loops替换它们,并且探测器加速了几秒钟。但是,在没有分析器的情况下进行测试,使用一个这样的循环的开始和结束之间的简单DateTime.Now差异,表明Parallel.For()循环的速度超过两倍。

在尝试使用Parallel类时,通过探查器运行代码是否可能会产生人为瓶颈?

1 个答案:

答案 0 :(得分:1)

问题在于,在执行并行操作时,探查器会对所有线程进行采样,这会使正常的探查器性能下降,并且线程越多。