我正在调查完成特定操作需要多少时间。操作如下:
Parallel.ForEach(items, item => SaveScheme(item));
该SaveScheme
方法适用于数据库:执行一些查询并使用信息。集合中的元素数量items
可能足够大。
当我运行此操作时,大约需要 20-40 秒才能完成。但是当我在打开分析的情况下运行它时,只需要 3 秒!
我没有找到有关此问题的任何信息。我唯一的猜测是,使用 profilingParallel.ForEach
会比没有它创建更多的线程,但我不确定,即使它是真的,我也不知道该怎么处理它。
那么,为什么会发生这种情况?当我在没有分析的情况下运行应用程序时,我如何才能获得这种性能呢?
UPD。Parallel
与此无关:我用simpleforeach
代替测试,操作仍然在3秒内完成!