为什么在32位和64位操作系统使用一样的udp发包代码,速度差了将近1000 倍?
我使用delphi7+自带的indy9写了如下代码:
var
s:string;
i:integer;
begin
for i:=1 to 254 do
begin
s:=inttostr(i);
IdUDPClient1.Host:='11.111.11.'+s;
IdUDPClient1.Port :=3001;
IdUDPClient1.Active :=true;
IdUDPClient1.Send(s);
IdUDPClient1.Active :=false;
listbox1.item.add(s);
end;
end;
在xp下运行时间1.5秒,在WIN7 64位机器运行约700多秒。如果改为循环一次,也就是只发送一次,xp机器基本不要时间,但sever2008和WIN7 64位机器运行约3秒(兼容性设置了也没用)。这是为什么?