テキスト ファイルから一意の文字の頻度を調べるための LINQ を作成しました。また、選択の助けを借りて、最初の結果をオブジェクトに変換していました。最終結果はリストの形式で出力されます。以下は私が使用したクエリです。
charNodes = inputString.GroupBy(ch => ch)
.Select((ch) => new TNode(ch.Key.ToString(),ch.Count()))
.ToList<TNode>();
私はクアッド コア マシンを実行しており、上記のクエリは 15 ミリ秒で実行されました。しかし、不思議なことに、同じクエリを PLINQ したときはさらに時間がかかりました。以下のクエリは約 40 ミリ秒かかりました。
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>();
ここで何がうまくいかないのですか?