7

ParallelEnumerable.Range と の違いは何Enumerable.Range(...).AsParallel()ですか?

ParallelEnumerable.Range範囲パーティションを作成します(各アイテムのCPU時間が等しい操作に最適)

asはまたはEnumerable.Range(...).AsParallel()として実行される可能性がありますrangechunk

パフォーマンスに違いはありますか?いつどちらを使うべきですか?

4

1 に答える 1

11

反復するにつれてCPU圧力が増加する操作を実行している場合は、反復AsParallelするときに調整を行うことができるため、使用する必要があります。ただし、並行して実行する必要があり、操作を繰り返してもプレッシャーが発生しないParallelEnumerable.Range場合は、作業をすぐに分割できるため、を使用してください。

詳細な説明については、この記事を参照してください。

したがって、各反復で複雑な計算を実行していると仮定します。入力値が大きくなるにつれて、計算に時間がかかるため、AsParallel調整できるように使用する必要があります。ただし、レジストリ設定の設定などで同じオプションを使用すると、それに関連するオーバーヘッドがAsParallel必要ないため、パフォーマンスが低下します。

于 2012-09-28T18:35:47.323 に答える