我正在做一些研究和基准测试,以便从Http响应中获取状态代码。
我需要使用尽可能快的方式从大量网站中获取响应状态代码,我无法在多个线程中运行,这将在批处理过程中运行,这是必需的。
我创建了一个基准测试服务,可以多次发送请求(避免站点缓存)并检索时间统计信息。
我正在使用不同的客户端和API进行测试,但响应时间不够好(最小200毫秒,平均值:300 - 400毫秒)。
我使用Java URLConnection,SpringRestTemplate,ApacheHttpCommons,GoogleHttpClient和Restlet进行测试。 我发现的一个问题是,在其中一些问题中我只能请求HEAD,然后检索状态sode,以便我选择完整的响应。
我也在思考套接字和脚本。
任何帮助都会受到赞赏。
答案 0 :(得分:2)
缺乏线程是一个更大的问题,那些响应时间很慢(可能是99%的网络延迟 - 特定的HTTP库不太可能产生太大的影响)。
您可以尝试使用基于Java NIO构建的http://mina.apache.org/asyncweb/,因此不会阻塞,但它可能会在后台创建线程。