最初に、すべてのコレクションクラスにpar
メソッドを追加してコレクションを適合する並列データ構造に変換すると仮定しました(map
はScala 2.8の要素タイプのベストコレクションを返します)。Scalaで並列コレクションを使用する際に推奨される方法は何ですか?
par
メソッド(例えば、配列)をサポートしているコレクションクラスもあれば、toParSeq
,メソッド(例えば、リスト)を持つコレクションクラスもあるようです。 Arrayは頻繁に使用されたり推奨されたりしていないので、少し奇妙です。
その理由は何ですか? 「正しいこと」をしているすべてのコレクションクラスでpar
を利用できるようにするのは良いことではないでしょうか?
私は並行して処理される可能性のあるデータがある場合、どのタイプを使用しますか?形質の種類はscala.collection
か、実装の種類は直接ですか?
これは並列化するほうが安価なので、今はArrays
を好むべきですか?
これは、 'SeqLike'に' .sorted'しかないようですので、 'items.sorted'の代わりに' items.toSeq.sorted'を実行する必要があります。なぜ 'items'が並列化できないときに' items.toArray.par'を実行するように指示するのではなく、 '.toParIterable'メソッドをすべて持っているのですか? – Steve
@Steve - 'toParIterable'メソッドは、基になるデータのコピーを作る必要がない場合があります。ゆっくりとしていても、ときには良い妥協点になることがあります(たとえば、リストやトラバースがリストの各要素の計算と比較して高速な場合)。 –