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

Вниз

Работа с логами   Найти похожие ветки 

 
Поросенок Винни-Пух ©   (2008-06-27 11:36) [40]

Есть задачи с большим потоком обработки данных, и операции нужно протоколировать, не мешая основной задаче.
Это и есть прямое назначение.


И каким образом спрошенное у меня количество записей в секунду может что-то сказать про это?


 
Игорь Шевченко ©   (2008-06-27 11:42) [41]


> И каким образом спрошенное у меня количество записей в секунду
> может что-то сказать про это?


повод померяться...


 
Игорь Шевченко ©   (2008-06-27 11:47) [42]


> А во всех этих пример и реализациях нагрузочное многопоточное
> тестирование проводилось?


На свете существуют разные задачи.


 
Anatoly Podgoretsky ©   (2008-06-27 11:48) [43]

> Поросенок Винни-Пух  (27.06.2008 11:33:38)  [38]

for I := 1 to N do Log(IntToStr(I));


 
Тын-Дын ©   (2008-06-27 12:07) [44]


> Поросенок Винни-Пух ©   (27.06.08 11:36) [40]
> Есть задачи с большим потоком обработки данных, и операции
> нужно протоколировать, не мешая основной задаче.
> Это и есть прямое назначение.
>
> И каким образом спрошенное у меня количество записей в секунду
> может что-то сказать про это?


Отвеченное количество может помочь оценить эффективность реализации.
Странно, что такой простой вопрос в тупик ставит.


> Игорь Шевченко ©   (27.06.08 11:47) [42]
>
> > А во всех этих пример и реализациях нагрузочное многопоточное
>
> > тестирование проводилось?
>
>
> На свете существуют разные задачи


Совершенно верно.


> Поросенок Винни-Пух ©   (27.06.08 11:34) [39]
> У меня не мешает.


см. [42]

Нет, так нет.
Значит, не возникали подобные задачи.


 
Поросенок Винни-Пух ©   (2008-06-27 12:11) [45]

Отвеченное количество может помочь оценить эффективность реализации.
Странно, что такой простой вопрос в тупик ставит.


Ну давай, зацени.
Логируются не вычисления в памяти, а обращения к бд, криптографические операции и прочее, само по себе затратное по времени, все это прерывается ожиданиями сервера окончания интеракитвых фаз на клиенте.

Число записей в секунду - 21.
Оцени хоть что-нибудь.


 
Тын-Дын ©   (2008-06-27 12:27) [46]


> Поросенок Винни-Пух ©   (27.06.08 12:11) [45]
> Отвеченное количество может помочь оценить эффективность
> реализации.
> Странно, что такой простой вопрос в тупик ставит.
>
> Ну давай, зацени.
> Логируются не вычисления в памяти, а обращения к бд, криптографические
> операции и прочее, само по себе затратное по времени, все
> это прерывается ожиданиями сервера окончания интеракитвых
> фаз на клиенте.
>
> Число записей в секунду - 21.
> Оцени хоть что-нибудь.


Число обращений к функции протоколирования 21 ни о чем не говорит.
Вот если бы ты обращался 1000 раз в секунду к функции записи в журнал из нескольких потоков, тогда можно было бы оценить с замерами в каждом потоке количества обращений и замером количества строк, записанных в журнал за единицу времени.


 
Поросенок Винни-Пух ©   (2008-06-27 13:28) [47]

Удалено модератором


 
Поросенок Винни-Пух ©   (2008-06-27 13:30) [48]

Удалено модератором


 
Тын-Дын ©   (2008-06-27 13:45) [49]

Удалено модератором


 
Поросенок Винни-Пух ©   (2008-06-27 13:45) [50]

Удалено модератором


 
Тын-Дын ©   (2008-06-27 13:46) [51]

Удалено модератором


 
Поросенок Винни-Пух ©   (2008-06-27 13:46) [52]

Удалено модератором


 
Тын-Дын ©   (2008-06-27 13:48) [53]

Удалено модератором


 
Тын-Дын ©   (2008-06-27 13:49) [54]

Удалено модератором


 
Поросенок Винни-Пух ©   (2008-06-27 13:53) [55]

Ну что же еще остается, если твоей крутой реализации лога мы все равно здесь не увидим.

Спорим, что не увидим?
А если увидим, то ничего сколько нибудь отличного по производительности и надежности там не будет.

спорим?!


 
Тын-Дын ©   (2008-06-27 14:06) [56]

Удалено модератором


 
Поросенок Винни-Пух ©   (2008-06-27 14:07) [57]

Удалено модератором


 
@!!ex ©   (2008-06-27 14:13) [58]

> [35] Тын-Дын ©   (27.06.08 11:26)
>
> > Поросенок Винни-Пух ©   (27.06.08 11:09) [34]
> > не только тестирование, но и многолетняя эксплуатация
>
>
> Ну и как с нагрузкой?
> Сколько записей в секунду выдерживает и время реакции(время
> начала/конца обращения к процедуре?).

за 30 секунд 80 мегабайт лога, без видимого падения ФПС.


 
@!!ex ©   (2008-06-27 14:15) [59]

Правда в один поток.


 
Игорь Шевченко ©   (2008-06-27 14:15) [60]

Поросенок Винни-Пух ©   (27.06.08 13:53) [55]


> спорим?!


people may not see the difference


 
Поросенок Винни-Пух ©   (2008-06-27 14:22) [61]

people may not see the difference

Не, ну объясните мотивы персонажа.
Кто-то просто привет модуль без коментариев.
Рисуется перец, который ехидно страшивает, типа ну и скока там у вас?
Ему в ответ: а зачем тебе и что ты по ответу можешь сказать?
Он: - мне это поможет оценить всякую хрень.
Я - на, оценивай.
Он: мне количество обращений нифига не говорит, а ты не понтуйся.

Каково, а?


 
Игорь Шевченко ©   (2008-06-27 14:37) [62]

завязываем с оффтопиком. можно вполне предметно побеседовать в чате - для чего-то его тут сделали ?


 
Тын-Дын ©   (2008-06-28 01:40) [63]


> Поросенок Винни-Пух ©   (27.06.08 14:22) [61]
> people may not see the differenceНе, ну объясните мотивы
> персонажа.Кто-то просто привет модуль без коментариев.Рисуется
> перец, который ехидно страшивает, типа ну и скока там у
> вас?Ему в ответ: а зачем тебе и что ты по ответу можешь
> сказать?Он: - мне это поможет оценить всякую хрень.Я - на,
>  оценивай.Он: мне количество обращений нифига не говорит,
>  а ты не понтуйся.Каково, а?


Для крутых перцев:
Вот реализация ведения протокола: http://89.223.39.99/files/threadlog.zip

Тестовый пример:

uses
 uThreadLog;

type
TThrPing=class(TThread)
private
 FHost: String;
 FLog: TThreadLog;
protected
 procedure Execute; override;
public
 constructor Create(Host: String; Log: TThreadLog);
end;

implementation

{ TThrPing }

constructor TThrPing.Create(Host: String; Log: TThreadLog);
begin
 inherited Create(True);
 FreeOnTerminate := True;
 FHost := Host;
 FLog := Log;
 Resume;
end;

procedure TThrPing.Execute;
var
 s: String;
 i: Integer;
 dt: Cardinal;
begin
 dt := GetTickCount;
 for i := 0 to 100000 do
 begin
   s := FormatDateTime("hh:nn:ss  ",now)+ IntToStr(ThreadId)+"("+IntToStr(i)+"):"+StringOfChar("a",50);
   FLog.Add(s);
   if (i>0) and ((i mod 10000)=0) then
   begin
     MessageBox(0,PChar(IntTOStr(GetTickCount-dt)),"",MB_OK);
     Exit;
   end;
 end;
end;

//Тест1
procedure TForm1.Button1Click(Sender: TObject);
var
 Log1: TThreadLog;
begin
Log1 := TThreadLog.Create("c:\Log1","c:\ArchLog",100);
Log1.Start;
          TThrPing.Create("127.0.0.1",Log1);
          TThrPing.Create("127.0.0.2",Log1);
          TThrPing.Create("127.0.0.3",Log1);
end;

//Тест2
procedure TForm1.Button2Click(Sender: TObject);
var
 s: String;
 i: Integer;
 dt: Cardinal;
begin
 dt := GEtTickCount;
 for i := 0 to 100000 do
 begin
   s := FormatDateTime("hh:nn:ss  ",now)+ "qqqq"+"("+IntToStr(i)+"):"+StringOfChar("a",31);
   Log(s);
   if (i>0) and ((i mod 10000)=0) then
   begin
     MEssageBox(0,PChar(IntTOStr(GetTickCount-dt)),"",MB_OK);
     Exit;
   end;
 end;
end;

//Тест3
procedure TForm1.Button3Click(Sender: TObject);
var
 ld: TLDSLogger;
 s: String;
 i: Integer;
 dt: Cardinal;
begin
 ld := TLDSLogger.Create("c:\lds.log");
 dt := GEtTickCount;
 for i := 0 to 100000 do
 begin
   s := FormatDateTime("hh:nn:ss  ",now)+ "qqqq"+"("+IntToStr(i)+"):"+StringOfChar("a",31);
   ld.LogStr(s);
   if (i>0) and ((i mod 10000)=0) then
   begin
     MEssageBox(0,PChar(IntTOStr(GetTickCount-dt)),"",MB_OK);
     Exit;
   end;
 end;
 ld.Free;
end;

Время выполнения:
Тест1(Запись из 3х потоков) ~ 328-400мс
Тест2(Запись из 1 потока)    ~ 1203-1359мс
Тест3(Запись из 1 потока)    ~ 1172-1395мс


В LDS хорошая функциональность. При обычных требованиях к ведению журнала - отлично сделанная вещь.


 
Тын-Дын ©   (2008-06-28 01:42) [64]

PS.
Тест1 - Тын-Дын
Тест2 - Поросенок Винни-Пух
Тест3 - Loginov Dmitry



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

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

Наверх




Память: 0.6 MB
Время: 0.019 c
6-1190631328
ZuArt
2007-09-24 14:55
2008.07.27
Чтение WEB страниц


15-1212841734
Поросенок Винни-Пух
2008-06-07 16:28
2008.07.27
как бы сделали вы?


6-1190980794
HaJik
2007-09-28 15:59
2008.07.27
IndyTCPClien Заменить сообщение об ошибке.


15-1212760713
Vlad Oshin
2008-06-06 17:58
2008.07.27
моя плакаю. Бросаем delphi, переходим на С под NET


2-1214475991
Vit
2008-06-26 14:26
2008.07.27
Компиляция и билд