0

私はLazyとParallel Collectionsの利点を以下のように組み合わせようとしました: Vector(/* some values....*/).par.view - これは大きなパフォーマンス向上をもたらします。しかし、Scala 2.12では、ParSeqLikeでは非推奨となっています。 Parallel Collectionの怠惰な使い方で何が問題になっていますか?どこに置き換えられますか?ScalaのParSeqLikeからviewメソッドが使用されるのはなぜですか?

+0

2.10で実行可能だったように見えます。 2.11ではこの能力が削除されました。 https://github.com/scala/scala/commit/51cd47491e979b10b5d86992dd2e3efd08f7e214#diff-975c6a2824a578e038b3c345a3c5f062 コレクションの簡素化に向けてのステップだったようです。 –

+0

Btw、Vector(...)。par.viewは、機能的にはVector(...)と同じです。したがって、使用しないでください。 私はこれを回避するのが簡単ではないと思います。あなたは現時点でビューまたはパーを選択する必要があるようです。あなたは手作業でコレクションをグループ化し、各チャンクにparを使用して中間オブジェクトにメモリを節約することができますが、ちょっとハッキリです。 –

+0

@ BruceLowe、ワークシートには、これに対する異なる署名が示されています。 –

答えて

0

パラレルコレクションの怠惰な使い方は何ですか?

あなたが定義を見れば、それは並列ではない:(Vector(/* some values....*/).par.viewVector(/* some values....*/).viewと同じである必要がありますように)それがdef view = seq.viewとして定義されています。そしてそれはドキュメントがあなたに言うものです:seq.viewを直接使用すると、それは平行ではありません。潜在的にはParSeqLikeの子孫がそれを無効にする可能性がありますが、ParVectorは無効です。

関連する問題