我写了一个LINQ查询,用于从文本文件中查找唯一字符的频率。我还使用select的帮助将初始结果转换为对象。最终结果以List的形式呈现。 以下是我使用的查询。
charNodes = inputString.GroupBy(ch => ch)
.Select((ch) => new TNode(ch.Key.ToString(),ch.Count()))
.ToList<TNode>();
我有一台四核机器正在运行,上述查询用时15ms,但当我使用PLINQ进行同样的查询时,却需要更长的时间。以下查询大约需要40ms。
charNodes = inputString.GroupBy(ch => ch).AsParallel
.Select((ch) => new TNode(ch.Key.ToString(),ch.Count()))
.ToList<TNode>();
接下来的查询最糟糕,大约需要83毫秒
charNodes = inputString.AsParallel().GroupBy(ch => ch)
.Select((ch) => new TNode(ch.Key.ToString(), ch.Count()))
.ToList<TNode>();
这里出了什么问题?
String
作为源,我不确定这与“IO”有什么关系... - Peter Ritchiestring
的PLINQ;我不知道他在处理文件方面是否也是使用PLINQ。但是,如果是的话,那是一个很好的观点。 - Peter Ritchie