並列 HTTP リクエストが Windows レジストリによってブロックされました
アプリケーションで複数の HTTP リクエストを同時に実行しようとしていますが、パフォーマンスが制限されています。潜在的なボトルネックを調査すると、Windows が同時リクエストに制限を課す可能性があることがわかりました。
この問題に対処するために、接続制限に関連するレジストリ値を変更するというアドバイスに従いました。ただし、調整を行ってコンピュータを再起動したにもかかわらず、アプリケーションは依然として 2 つの TCP 接続のみを使用して動作し、スループットが制限されています。
レジストリの変更が機能しないのはなぜですか?
という疑問が生じます。あなたが参照したブログ投稿で提供されている情報は完全に正確ではありません。前述のレジストリ キー、MaxConnectionsPerServer および MaxConnectionsPer1_0Server, は、許可される同時接続の数には直接関係しません。代わりに、これらのキーは、特定のサーバーに対して開いたままにできる接続の最大数を制御します。
同時接続の最大数を制御するには、ServicePointManager.DefaultConnectionLimit プロパティを使用する必要があります。このプロパティを使用すると、ServicePoint オブジェクトが持つことができる接続の最大数を指定できます。デフォルトでは、この制限は 2 に設定されています。
接続制限を増やすには、DefaultConnectionLimit プロパティを目的の値に設定するだけです。以下に例を示します。
ServicePointManager.DefaultConnectionLimit = 20;
この変更により、アプリケーションを通じて行われるすべての HTTP リクエストの同時接続制限が引き上げられ、必要なスループットを達成できるようになります。
以上がレジストリを変更しても Windows で並列 HTTP リクエストが増加しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。