【发布时间】:2012-07-20 13:14:06
【问题描述】:
我的任务是找出导致分配给我的应用程序如此缓慢的部分原因。我决定试一试 Redgate 的 Ants Profiler。运行它时,大多数热点都包含在原始开发人员编写为Parallel.For() 循环的循环中。
为了看看它会产生什么效果,我用标准的 for 循环替换了它们,分析器加速了几秒钟。但是,在没有分析器的情况下进行测试,使用一个此类循环的开始和结束之间的简单DateTime.Now 差异,表明Parallel.For() 循环的速度是原来的两倍多。
在尝试使用 Parallel 类时,通过分析器运行代码是否会造成人为的瓶颈?
【问题讨论】:
-
分析器的主要目的是发现缓慢的错误,而不是快速。
-
@MikeDunlavey 我意识到了这一点。问题是程序在使用分析器时运行得更快,而在没有分析器的情况下运行得更慢,这会产生取决于正在使用的工具而不是代码本身的瓶颈的差异。这就像一个误报。
标签: c# performance parallel-processing profiling