【发布时间】:2015-11-02 09:04:06
【问题描述】:
我有一个程序可以检查多个文件,然后替换某些字符串(通常是 100-200 个文件,每个不超过 10-20kb)。
我原以为Parallel ForEach 会是去这里的方式,但这实际上比一个好的'ol 系列 ForEach 慢。知道为什么吗?
【问题讨论】:
-
当操作到达硬件时,仍然只有一个磁盘。跨 CPU 内核的任务切换很容易,但磁盘开销很昂贵。
-
@David 很棒的回答,谢谢!
-
@MatthewPatrickCashatt 喘口气。 Preston 的评论是系统自动生成的,因为他的投票结果很接近。除了您之外,没有其他人可以看到
Question may already have an answer...位 - 它的唯一目的是提示您有人认为这可能回答您的问题。如果确实如此,您可以接受它已经回答了您的问题,如果没有,请不要担心。令人惊讶的是,你在这里已经四年多了,5k 代表,这对你来说是个新闻……保持冷静,继续。 -
也就是说,可能值得阅读 Preston 提供的链接 - 它可能无法回答您的问题,但如果您对并行化磁盘 I/O 并没有提供任何性能提升感到惊讶那么它可能有很多你可以从中学习的信息(毕竟,这就是我们都在这里的原因)。
标签: c# windows parallel.foreach