我发现在为 TIdHTTP 组件设置 ConnectTimeoout 属性时,它会使请求(GET 和 POST)变慢大约 120 毫秒?
为什么会这样,我可以以某种方式避免/绕过它吗?
环境:D2010 带有随附的 Indy 组件,为 D2010 安装了所有更新。操作系统是 WinXP (32bit) 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 ...