WebClient缺省是为了安全和方便,不是为了性能。所以,当你打算做压力测试的时候,就会发现WebClient很慢。
WebClient性能很差,主要原因有:
1、它缺省会使用IE的代理设置,而IE的代理设置默认是‘自动检测’。这意味着每个进程在第一次使用WebClient的时候都要自动检测一次代理,这常常会耗时5秒钟以上。
2、WebClient遵循了一个古老的垃圾设定“对每个网站最多只发起两个并发连接”
因此,可以如下优化WebClient的性能:
1、WebClient.Proxy = null,禁止它使用proxy
2、ServicePointManager.DefaultConnectionLimit = 500;
另外,ServicePointManager还有几个属性也可能影响性能:Expect100Continue、UseNagleAlgorithm、CheckCertificateRevocationList
WebClient用起来真麻烦。
有没有类似curl那样的单纯点的类库呀?