0

私は基本的にeコマースタイプのプロジェクトに取り組んでいます。私たちのアーキテクトはクライアントから PLINQ を使用するように指示を受けました。PLINQ は LINQ よりもはるかに有益であり、並列で動作し、プロセッサのすべてのコアを使用するため、迅速な応答が得られます。クライアントの提案は、可能であれば PLINQ + リポジトリです。

だから私は知りたいだけです, どれが中小アプリに従うのが良いか. Plinq + リポジトリを使用することは可能ですか。私の調査結果によると、スタッフを適切に処理していない場合、Plinq は linq よりも多くのオーバーヘッドがあることがわかりました。私を助けてください。

4

3 に答える 3

1

アプリケーションの詳細を知らなければ、この質問に答えることはできません。PLINQ には、ワークロードをワーカー スレッドにファンアウトし、それらの間で作業を調整するためのオーバーヘッドがあります。何十万ものエンティティを処理していて、それぞれに対してかなりの量の作業を行う必要がある場合は、確かにメリットがあります。最終的に、 PLINQ が役立つかどうかを本当に知る唯一の方法は、現実的なデータ セットを使用してプロファイリングすることです。

于 2011-12-12T20:59:32.743 に答える
1

ループの本体が小さい場合for、同等の順次ループよりも実行が遅くなる可能性があります。パフォーマンスの低下は、データの分割に伴うオーバーヘッドと、ループの反復ごとにデリゲートを呼び出すコストが原因で発生します。このようなシナリオに対処するために、PartitionerクラスはPartitioner.Createメソッドを提供します。これにより、デリゲート本体に順次ループを提供できるため、反復ごとに 1 回ではなく、パーティションごとに 1 回だけデリゲートが呼び出されます。

ここを参照してください。

これは PLINQ に適用されます。

PLINQについてはこちらをご覧ください。

于 2012-09-27T11:43:23.383 に答える
0

笑。

笛を吹く者は曲を呼ぶ

ただし、一般的に、これはエンジニアリングの問題です。アーキテクトやクライアントと話し合い、成果物のパフォーマンスを測定するためにどのような指標を使用するかを決定します。

次に、これらのメトリクスを使用して、Linq、PLinq、またはその他の最適なソリューションを見つけ、結果を報告します。

基本的に、すべてのテクノロジーは何かに役立ち、アプリのサイズはさまざまな方法で測定されます。したがって、「小さい」という用語は無意味です。

于 2011-12-10T00:14:51.797 に答える