Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-25 Пенетрантность Мадорский Г . В .

 FieldByName. В плюсах он чуть побыстрей. Если запрос очень легкий, но
 записей много а мы бежим  по всем записям и стучим к полям через 
 FieldByName... в общем в этом случае то самое чуть побыстрей может 
 сложиться в цифру 30 процентов. Почему бы и нет.

Понятно. Про тозмоза в FieldByName я как-то забыл. Давно уже в больших 
циклах на автомате вот так вот поступаю:

...
var Fld : TIBXSQLVAR;
...

IBSQL.ExecQuery;
Fld := IBSQL.FieldByName('IdDat');
While not IBSQL.Eof do begin
  Sum := Sum + Fld.AsXXX;
  Next;
end;

Кстати втравился вот, написал тестик:

procedure TForm1.Button1Click(Sender: TObject);
var Fld : TIBXSQLVAR;
i, s : Integer;
st, en : Cardinal;
begin
  s := 0;
  with IBSQL do begin
ExecQuery;
Fld := FieldByName('Id');

St := GetTickCount;
for i := 0 to 100 do
  S := S + Fld.AsInteger;
En := GetTickCount;
Label1.Caption := IntToStr(En - St);

St := GetTickCount;
for i := 0 to 100 do
  S := S + Fields[0].AsInteger;
En := GetTickCount;
Label2.Caption := IntToStr(En - St);

St := GetTickCount;
for i := 0 to 100 do
  S := S + FieldByName('Id').AsInteger;
En := GetTickCount;
Label3.Caption := IntToStr(En - St);

Close;
  end;
end;

Результаты :
1-ый цикл - 94 тика,
2-ой цикл -141 тик,
3-ий цикл -  4281 тик.

With b/r. Gleb. 



--~--~-~--~~~---~--~~
-~--~~~~--~~--~--~---



Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-25 Пенетрантность Мадорский Г . В .



Имхо, нужно бы отзывы из этой ветки на DelphiPlus опубликовать. Во-первых 
новичков сорентирует, что не надо всему, что написано верить, во вторых 
таких вот писателей может еще и читателями сделает (ну хотя-бы немного) 
... :)


With b/r. Gleb. 





Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-25 Пенетрантность Shiliaev Ruslan
Мадорский Г.В. пишет:
 
 Результаты :
 1-ый цикл - 94 тика,
 2-ой цикл -141 тик,
 3-ий цикл -  4281 тик.
 

Привет, Глеб!

Прогнал твой тест на Фибах(5.1.0):
1-ый цикл -141 тик,
2-ой цикл -203 тика,
3-ий цикл -406 тиков.

Для IBX(6.05):
1-ый цикл -185 тиков,
2-ой цикл -232 тика,
3-ий цикл -4938 тиков.

Поменял
S := S + Fields[0].AsInteger;
на
S := S + StrToInt(Fields[0].AsString);

Получил:

Фибы:
1-ый цикл -922 тика,
2-ой цикл -985 тиков,
3-ий цикл -1203 тика.


IBX:
1-ый цикл -922 тика,
2-ой цикл -984 тика,
3-ий цикл -5734 тика.

Выводы: В Фибах свойство AsInteger быстрее на десяток-другой процентов. 
Свойство AsString - одинаково.
Свойство FieldByName быстрее на порядок.

-- 
Удачи!

Shiliaev Ruslan


--~--~-~--~~~---~--~~
-~--~~~~--~~--~--~---



Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-25 Пенетрантность Oleg LOA
Serge Buzadzhy [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED]

ЗЫ. Прошу не счесть это за антирекламу фибплюс :)

Ладно ну какой смывлс сравнивать несравнимые вещи? Разница по функционалу столь 
существенна может оказаться, что мне например хватает из всех ibx одного 
database и ibsql, а кому-то не хватит всех возможностей фибов.


Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Boris Loboda



На DelphiPlus опубликована статья FIBPlus против IBX и DBExpress -
сравнение скоростных характеристик или Двоих одной левой (автор
Владислав Точёный).


Вам бы к статьям прикрутить некое обсуждение или заметки, а то несведущий 
народ будет читать и слепо верить написанному. Или хотя бы свои комментарии 
добавлять, что думают по поводу вышеизложенного акулы IB. Уже не первый 
раз, насколько я помню,  со статьями происходят некие курьезы. Вас все-таки 
многие читают, потом принимают серьезные решения... 





Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Мадорский Г . В .



Serge Buzadzhy [EMAIL PROTECTED] 
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]



Это как раз объяснимо легко.  TpFIBQuery   аналог TIBSQL. С
TIBQuery   надо сравнивать TFIBDataSet.


Сергей привет.
 А вот если посмотреть на результаты теста, то получается, что TpFIBQuery 
работает процентов на 30 быстрее, чем TIBSQL. За счет чего добился такого 
повышения быстродействия? Или результаты теста некорректны?


With b/r. Gleb.





Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Horsun Vlad

Alex Cherednichenko ...

   2. Можно за фразу Доступ через ADO не
   рассматривался по причине слишком
   низкой скорости работы через ODBC
   драйвера я ему дам в глаз ?

  AK Я бы присоединился кстати ;-)

 В очередь!

Зачем ?
Там же два глаза (должно быть... если это первая такая статья... :)

-- 
Хорсун Влад




Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Ded


Andrew Holubovski wrote:

На DelphiPlus опубликована статья FIBPlus против IBX и DBExpress -
сравнение скоростных характеристик или Двоих одной левой (автор
Владислав Точёный).


   Самый изумительный результат теста - после удаления триггеров и 
процедур в базе TIBQuery на селект заработал втрое быстрее. Воисстину -


За базой бегал Афанасий (7 на 8, 8 на 7)
С большим спидометром в руках - чтойта мерял (С) :)

--
Regards. Ded.



Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Ded


Oleg LOA wrote:


если будут проблемы с производительностью, то любой нормальный
 проектировщик выберет решение написать старницу когда с 
использованием функций API.


  Вот заладил - API, API... Вся прогрессивная общественность скл ру 
давно в курсе - Blazetop работает втрое быстрое API. Ждём-с новой статьи.


--
Regards. Ded.



Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Serge Buzadzhy


Мадорский Г.В. пишет:



Это как раз объяснимо легко.  TpFIBQuery   аналог TIBSQL. С
TIBQuery   надо сравнивать TFIBDataSet.


Сергей привет.
 А вот если посмотреть на результаты теста, то получается, что 
TpFIBQuery работает процентов на 30 быстрее, чем TIBSQL. За счет чего 
добился такого повышения быстродействия? Или результаты теста некорректны?


FieldByName. В плюсах он чуть побыстрей. Если запрос очень легкий, но 
записей много а мы бежим  по всем записям и стучим к полям через 
FieldByName... в общем в этом случае то самое чуть побыстрей может 
сложиться в цифру 30 процентов. Почему бы и нет.




Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-24 Пенетрантность Serge Buzadzhy

Boris Loboda пишет:
 
 На DelphiPlus опубликована статья FIBPlus против IBX и DBExpress -
 сравнение скоростных характеристик или Двоих одной левой (автор
 Владислав Точёный).
 
 Вам бы к статьям прикрутить некое обсуждение или заметки, а то 
 несведущий народ будет читать и слепо верить написанному. Или хотя бы 
 свои комментарии добавлять, что думают по поводу вышеизложенного акулы 
 IB. Уже не первый раз, насколько я помню,  со статьями происходят некие 
 курьезы. Вас все-таки многие читают, потом принимают серьезные решения...

Я бы добавил приблизительно такой комментарий.

Скажем так... Фактические результаты (то бишь цифирки) может быть и 
правильные... Вряд ли бы автор стал их придумывать. :) Но вот 
интерпретация этих результатов излишне обобщена. Глядя в код можно 
сказать за счет чего возникает разница скоростей  IBSQL  и FIBQuery. Она 
возникает за счет употребления метода FieldByName  огромное количество 
раз.  В FIBPlus этот метод несколько побыстрей чем в других компонентах. 
Т.е. если бы автор теста докопался бы до этой причины, и сделали вывод 
именно про метод  FieldByName думаю возражений ни у кого не возникло бы.
Автор  же сделал выводы более общие, которые мягко говоря не всегда 
верны. Хотя бы потому что если делать доступ через Fields[xxx]   то 
разница будет в пределах погрешности изменений, а метод FieldByName это 
в общем-то ленивый и в любом случае низкоскоростной вариант, который не 
рекомендуется использовать в критичных по скорости местах... вне 
зависимости от того что используешь, фибплюс или ибх или еще что. Ну и 
сравнивать FIBQuery с  IBQuery действительно нельзя. В первом случае при 
фетче заполняется всего один буфер записи причем не фибплюсами а 
непосредственно клиентской библиотекой. Во втором случае же случае кроме 
того результат фетча дополнительно копируется в еще и буфер компонента 
IBQuery... т.е. фактически сравниваем несравнимое.

Ну и еще один вывод из вышесказанного... Характеристики железа, сервера, 
базы данных... все это не имеет никакого значения для результатов ЭТОГО 
теста. Имеет значение только исходный код теста... который в отличие от 
несущественных параметров не опубликован в открытую, а лишь прилагается 
отдельным файлом.


ЗЫ. Прошу не счесть это за антирекламу фибплюс :)



--~--~-~--~~~---~--~~
-~--~~~~--~~--~--~---



Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-23 Пенетрантность Alex Cherednichenko

Привет, Andrew!
Вы пишешь  23 мая 2006:

 AH На DelphiPlus опубликована статья FIBPlus против IBX и DBExpress -
 AH сравнение скоростных характеристик или Двоих одной левой (автор
 AH Владислав Точёный).

И все кинулись качать 58Мб чтоб убедиться,
что товарищ из Армавира не гонит туфту...

TIBQuery   1210,547
TpFIBQuery  332,734

В четыре раза?..
Почему не в 10?

--
With best regards, Alex Cherednichenko.




Re: Статья FIBPlus против IBX и DBExpress - сравнение скоростных характеристик или Двоих одной левой

2006-05-23 Пенетрантность Serge Buzadzhy


Alex Cherednichenko пишет:

Привет, Andrew!
Вы пишешь  23 мая 2006:

 AH На DelphiPlus опубликована статья FIBPlus против IBX и DBExpress -
 AH сравнение скоростных характеристик или Двоих одной левой (автор
 AH Владислав Точёный).

И все кинулись качать 58Мб чтоб убедиться,
что товарищ из Армавира не гонит туфту...

В принципе достаточно посмотреть код. :)


TIBQuery   1210,547
TpFIBQuery  332,734

В четыре раза?..
Почему не в 10?


Это как раз объяснимо легко.  TpFIBQuery   аналог TIBSQL. С
TIBQuery   надо сравнивать TFIBDataSet.