私は、割り当てられたアプリケーションの一部を非常に遅くしている原因を突き止めるという任務を負っていました。Redgate のAnts Profilerを試してみることにしました。それを実行すると、ホット スポットの大部分は、元の開発者がParallel.For()
ループとして記述したループに含まれていました。
どのような効果があるかを確認するために、それらを標準の for ループに置き換えたところ、プロファイラーの速度が数秒速くなりました。ただし、プロファイラーを使用せずに、DateTime.Now
そのようなループの開始と終了の単純な違いを使用してテストすると、Parallel.For()
ループが 2 倍以上高速であることが示されます。
Parallel クラスを使用しようとすると、プロファイラーを介してコードを実行すると人為的なボトルネックが生じる可能性はありますか?