限制並行HTTP 請求:探索Windows 註冊表配置
為了優化使用ThreadPool 執行大量非同步HTTP 請求的應用程序,開發人員最初遇到了性能限制。最初的故障排除試圖解決伺服器端的潛在限制,但這條路被消除了。
研究顯示 Windows 對同一 Web 伺服器的同時請求數量有潛在限制。建議增強 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings] 中的登錄值「MaxConnectionsPerServer」和「MaxConnectionsPer1_0Server」作為改變此行為的方法。然而,預期的改進未能實現。有人懷疑引用的登錄值可能不正確,或者修改在目前 Windows 環境中不再有效。
有趣的是,更改 ThreadPool 中的 MaxThreads 設定並沒有影響應用程式的效能,因此將其排除在外潛在的瓶頸。相應的資源監視器觀察值進一步證實了有限的 TCP 連線。
更正方法
經過仔細檢查,很明顯該問題源於 ServicePoint 類別引入的限制,它管理 HTTP 操作的連接。預設情況下,每個 ServicePoint 物件規定最多兩個並發連線。為了緩解此限制,開發人員修改了「ServicePointManager.DefaultConnectionLimit」屬性以適應大量的並發請求。這項調整最終解決了問題,允許應用程式同時執行多個 HTTP 請求。
以上是如何增加 Windows 應用程式中的並發 HTTP 請求數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!