TIdHTTP コンポーネントの ConnectTimeoout プロパティを設定すると、リクエスト (GET および POST) が約 120 ミリ秒遅くなることがわかりました。
これはなぜですか?どうにかしてこれを回避/バイパスできますか?
Env: 出荷された Indy コンポーネントを含む D2010、D2010 用のすべての更新プログラムがインストールされています。OS は WinXP (32 ビット) SP3 で、ほとんどのパッチが適用されています...
私のタイミングルーチンは次のとおりです。
Procedure DoGet;
Var
Freq,T1,T2 : Int64;
Cli : TIdHTTP;
S : String;
begin
QueryPerformanceFrequency(Freq);
Try
QueryPerformanceCounter(T1);
Cli := TIdHTTP.Create( NIL );
Cli.ConnectTimeout := 1000; // without this we get < 15ms!!
S := Cli.Get('http://127.0.0.1/empty_page.php');
Finally
FreeAndNil(Cli);
QueryPerformanceCounter(T2);
End;
Memo1.Lines.Add('Time = '+FormatFloat('0.000',(T2-T1)/Freq) );
End;
コードで ConnectTimeout を設定すると、平均が得られます。130〜140msの時間、それなしでは約5〜15msです...