ASP.NET 4 で並列プログラミングを使用することは可能ですか? たとえば、PLINQ です。
(現在、すべてのホスティング サーバーがマルチコアになっているため、パフォーマンスが向上しますか?)
ASP.NET 4 で並列プログラミングを使用することは可能ですか? たとえば、PLINQ です。
(現在、すべてのホスティング サーバーがマルチコアになっているため、パフォーマンスが向上しますか?)
はい、可能です。しかし、ほとんどの場合、それは理にかなっています。ASP.NET は、すべての要求が独自のスレッドで機能するため、既に高度に並列化されています。他のスレッドをスピンオフして一部の作業を行うと、オーバーヘッドが発生します。このオーバーヘッドにより、他のリクエストで動作する他のスレッドが遅くなります。この場合も、結果を同期してリクエストを完了するときに、別のオーバーヘッドが発生します。また、このオーバーヘッドにより、リクエストへの応答に必要な時間が遅くなる可能性があります。
それが実際に全体的なパフォーマンスの向上に役立つシナリオがあるかもしれませんが、一般的には価値がないと思います.
もちろん、両方のアプローチを使用したストレス テストのみが、PLINQ を使用する方が効率的か、使用しない方が効率的かを確認できます。
答えはイエスです。
なぜあなたはそうではないと思いますか?(したがって、皮肉なコメント。)
特別な手順を実行しない限り、すべてのHTTPリクエストは、サービスを開始するスレッドで完了する必要があることに注意してください。特別な手順では、ASP.NETにページの非同期処理を使用するように指示します。これにより、応答を作成し、要求を別のスレッドで完了することができます(場合によっては、他のスレッドの中間処理を使用)。リクエストの元のスレッドからTPL(PLINQを含む)を使用する場合、これは問題ではありません。