HTTPWebRequest类的速度有多快?

时间:2012-01-31 12:07:09

标签: c# httpwebrequest

我想知道,HTTPWebRequest与HTTP-Response的自编解析器相比有多快。

我知道HTTPWebRequest类能够使用具有流水线操作的持久TCP连接(默认情况下启用流水线操作)。也可以设置缓存和压缩的值。

响应的解析可能永远不是瓶颈,但仅仅是因为我的好奇心:HTTPWebRequest类是否会产生“不必要的”开销?

2 个答案:

答案 0 :(得分:2)

如果不知道自编解析器是什么,就不可能给出问题的量化答案。也就是说,可能能够编写 的解析器,而不是HTTPWebRequest,如果(例如):

  • 您的回复只会包含一组特定的标题
  • 标题只会按特定顺序返回
  • 您的请求只会转到一个目的地
  • 您可以用来限制将对响应执行的处理的任何其他约束

如果您可以限制该方案,您可以胜过HTTPWebRequest,因为它必须能够处理任何 有效响应,而自定义解析器必须只能处理它期望的场景。也就是说,请记住,您所编写的内容不会是真正的 HTTP响应解析器,而是处理严格的有效响应子集。

唯一可以判断是否存在可以避免的开销的方法是编写自己的(子集)解析器并将其性能与内置解析器的性能进行比较。

答案 1 :(得分:1)

我没有得出结论,但我相信这类问题应该以实际情况为动机。例如,HttpWebRequest类是否会减慢您的解决方案?您是否使用某个分析器检查了其性能影响?

毕竟,关于优化的这类问题有一个众所周知的句子:过早优化是任何软件开发的魔鬼

我最好的建议是你应该关注其他事情,使用一个好的分析器并找出你的程序在哪里遇到性能问题(我确定HttpWebRequest不会出现问题!)。