3

Http応答からステータスコードを取得するために、少し調査とベンチマークを行っています。

可能な限り最速の方法を使用して、多数のサイトのリストから応答ステータスコードを取得する必要があります。複数のスレッドで実行することはできません。これはバッチプロセスで機能し、必須です。

リクエストを複数回送信し(サイトのキャッシュを回避)、時間統計を取得する小さなベンチマークサービスを作成しました。

さまざまなクライアントとAPIでテストしていますが、応答時間は十分ではありません(最小200ミリ秒、平均:300〜400ミリ秒)。

Java URLConnection、SpringRestTemplate、ApacheHttpCommons、GoogleHttpClient、Restletでテストします。私が見つけた問題の1つは、それらのいくつかでは、HEADのみを要求してから、ステータスソードを取得することができないため、完全な応答を選択することです。

ソケットやスクリプトについても考えています。

どんな助けでも大歓迎です。

4

1 に答える 1

2

スレッド化の欠如は、これらの遅い応答時間 (おそらく 99% のネットワーク遅延であり、特定の HTTP ライブラリが大きな違いをもたらす可能性は低い) よりも大きな問題です。

http://mina.apache.org/asyncweb/を試すことができます。これは Java NIO 上に構築されているためノンブロッキングですが、バックグラウンドでスレッドが作成される可能性があります。

于 2012-05-18T10:44:54.907 に答える