Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Поросенок Винни-Пух ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.009 c
15-1213126413
wl
2008-06-10 23:33
2008.07.27
oracle getting started


2-1214468381
Ega23
2008-06-26 12:19
2008.07.27
Правильно ли написал наследника TList?


2-1214551258
lewka-serdceed
2008-06-27 11:20
2008.07.27
Проблема с получением HTML кода


15-1213111229
Волков Макс
2008-06-10 19:20
2008.07.27
Скорость обработки


6-1190631328
ZuArt
2007-09-24 14:55
2008.07.27
Чтение WEB страниц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский