【发布时间】:2017-08-02 13:17:59
【问题描述】:
我有巨大的文本文件 (1GB+)。所以我在想是否可能会出现以下情况:
- ReadFile 并创建一个带有起始索引/位置的 int 数组
- 使用 Parallel.ForEach 从所有索引开始读取文件,直到到达下一个索引或特定字符
示例:
文本文件:
"I am a test file. Please use me. You used me. Urraaaaaaaaaay!"
int array = {0,10,20};
Parallel.ForEach 有 3 个线程:
- ReadFile 以 0 到 9 的字符开始
- ReadFile 以 10 到 19 的字符开头
- ReadFile 从第 20 个字符开始到结束
1 GB 只是一个文件。我们每 10 秒 24/7 得到一个这样的文件。
【问题讨论】:
-
除非您对数据进行 CPU 密集型处理,否则我认为没有什么意义。读取文件的瓶颈不是 CPU,而是硬盘。
-
我同意@Rotem 的观点,也就是说,创新很棒,试一试,让我们知道它的效果。
-
你是对的。我忘了硬盘是瓶颈。不是CPU。现在我首先通过文件删除和添加 RETURNS,然后我使用标准的 Parallel.ForEach 和 ReadLine。
-
1GB 不是很大。
标签: c# string performance parallel-processing text-files