.net 的 HttpWebRequest 或者 WebClient 在多線程狀況下存在併發鏈接限制,這個限制在桌面操做系統如 windows xp , windows 7 下默認是2,在服務器操做系統上默認爲10. 若是不修改這個併發鏈接限制,那麼客戶端同時能夠創建的 http 鏈接數就只有2個或10個。對於一些諸如瀏覽器或網絡蜘蛛的應用,2個或10個併發數量實在太少,大大影響應用的性能。之因此有這個併發鏈接限制,是由於 http 1.0 和 http 1.1 標準規定併發鏈接數最大爲2. 不過目前主流的瀏覽器都已經不遵循這個規則了,但 .net framework 依然默認遵循這個規則。html
不少文章說用異步方式訪問 HttpWebRequest 能夠提升併發性能,但我測試下來,若是不修改這個默認併發鏈接數,同步或異步方式訪問性能都很很差。windows
調整這個默認併發鏈接限制的方法很簡單瀏覽器
只要在程序中設置:服務器
System.Net.ServicePointManager.DefaultConnectionLimit = 512;網絡
這個值最好不要超過1024。多線程
咱們也能夠在app.config 中對最大併發鏈接數進行設置,方法以下:併發
<configuration><system.net><connectionManagement><addaddress = "http://www.google.com"maxconnection = "512"/><addaddress = "*"maxconnection = "512"/></connectionManagement></system.net></configuration>
修改了這個設置後,併發性能明顯提升,從原來每秒鐘20次直接上升到每秒鐘1000屢次。app
http://www.cnblogs.com/eaglet/archive/2012/05/18/2507179.html 異步