並列の処理を設定するとオーバーヘッドが発生することStream
、アイテム数が少ない場合や各アイテムの処理が速い場合はシングルスレッドでの処理の方が早いことは理解しています。
trySplit()
しかし、問題をより小さなチャンクに分解することが逆効果になる点について、同様のしきい値はありますか? 私は、マージソートが最小チャンクの挿入ソートに切り替わることに類推して考えています。
もしそうなら、閾値は相対的なコストtrySplit()
とアイテムの消費tryAdvance()
に依存しますか? 配列インデックスを進めるよりもはるかに複雑な分割操作を考えてみましょう。たとえば、語彙的に順序付けられた multiset 順列を分割します。コンシューマーの複雑さに応じて、クライアントが並列ストリームを作成するときに分割の下限を指定できるようにする規則はありますか? Spliterator
下限自体を推定するために使用できるヒューリスティック?
あるいは、a の下限をSpliterator
1 にして、ワークスティーリング アルゴリズムに分割を続行するかどうかの選択を任せることは常に安全ですか?