Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

Как оптимизировать Ресолв ДНС   Найти похожие ветки 

 
Dunmer   (2003-11-10 11:31) [0]

У меня есть такая функция которая постоянно ресолвит ДНС, но дело в том что она тормозит работу всей проги, т.к. вызывается очень часто. Как ее оптимизировать что бы она быстрее работала(уж очень она медленно ресолвит 600 записей, если учитывать что у меня выделенный канал 2 Мбит) и что бы она не подвисала работу всей моей проги...
Вот собственно сама функция

Function HostToIP(Name: string; var Ip: string): Boolean;
var
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
{/}try
GetHostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
HostEnt := gethostbyname (hostName);
{***}if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then
{**} begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then
{*} begin
IP := Format ("%d.%d.%d.%d", [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
{*} end
else
Result := False;
{**} end
else
Result := False
{***}else
Result := False;
finally
begin
{Nothing to do}
end;
{/}end;
end;


 
Anatoly Podgoretsky ©   (2003-11-10 11:39) [1]

Про потоки рассказывать?


 
Dunmer   (2003-11-10 11:39) [2]

Угу:)


 
Slym ©   (2003-11-11 10:36) [3]

На такой связи...
я бы сделал класс потока
TDNSResolver=class(TThread)
наделал бы пул потоков... штук 256 и запустил!
скорость выростит в Н раз! (Н<256)

procedure TDNSResolver.Execute;
var host,ip:string;
begin
host:=GetNextHost;
HostToIP(host,ip);
end;
и не забудь про синхронизацию



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-37741
miracle_fox
2003-12-30 11:18
2004.01.13
помогите добавить строчку в файл и listbox одновременно


14-37849
Vlad Oshin
2003-12-23 10:01
2004.01.13
outlook. сохранение вложений.


4-37973
X-Disa
2003-11-10 13:27
2004.01.13
Процессы


3-37514
Apolon
2003-12-16 20:02
2004.01.13
Table1.Modified при закрытии окна?


11-37600
Centronix
2003-04-24 14:45
2004.01.13
Создание диалогового окна