Max Rezanov, Южно-Российский кадастровый центр "Земля".
24.06.2002:
|
|
За год мнооооого воды утекло Sergey Nikolaenko |
|
|
Она (статья) устарела практически в момент опубликования. Но это уже вряд ли кто проверит. Serge Buzadzhy |
|
|
ЗЫ. Да... если будешь мерять, замерь и |
Прошло некоторое время, как говориться ничто и никто не стоит на месте... Возвращаясь к первоначальной задаче с учетом обновлений продуктов. Основной результат, как и прежде, графики, гнусные мысли можно не читать :).
При рассмотрении участвовали:
BDE v 5.1 (входить в состав Delphi5)
IBX v 5.01 (накачен на Delphi5 официальный ibxdp502upd.exe)
FIBC v 4 (http://www.fibplus.net)
OLE DB provider от Lipetsk Center of Legal
Informatization. (http://www.lcpi.lipetsk.ru/prog/russ/start/ibprov_ib.html)
IBObjects
4.2(1) (http://www.ibobjects.com)
Общее состояние среды обитания: Windows 2000 prof rus, IB v 6.0.1 от
борланда, на момент запуска тестового приложения ОЗУ - 160 МБ
свободно из 256(2). Delphi5
установлен ServicePack
1.
Начальные условия практически не отличаются от указанных в предыдущей статье за исключением количества записей(3) в таблице. Кроме того, для "чистоты эксперимента перед каждым запуском был выполнен останов SQL сервера". Повторимся - открытие базы данных, открытие выборки вида select * from table, полный фетч до конца набора данных. В таблице ~115 000 записей. Структура таблицы следующая:
CREATE TABLE table (
ID_ACT CHAR(10) NOT NULL,
ID_ADMUSERS CHAR(10) NOT NULL,
ID_RID CHAR(10) NOT NULL,
ID_ADMACTIONS CHAR(10) NOT NULL,
MASTER_TAG_ACT VARCHAR(10),
ID_MASTER_ACT CHAR(10) NOT NULL,
KOGDA_ACT DATE default 'NOW' NOT NULL,
DATE_ACT DATE,
RELSUB_ACT VARCHAR(100),
REM_ACT VARCHAR(255));
Должен заметить сразу у нас есть изменения практически по
всем параметрам итак результаты:
Время:
Общая картина рис 1., начало графика - первые 5000 записей рис 2. На правах комментария: ситуация вполне естественная - текущие результаты даже на одинаковых объемах отличаются от предыдущих, с учетом того, что к примеру BDE не менялось. Итак, складывается ощущение что IBX пытается стать все хуже и хуже :( по крайней мере он на последних позициях и если говорить о изменениях то в худшую сторону. FIBC обогнали BDE :). Вообще, если, как говорилось выше, BDE прекратило развитие (к моей печали, а может быть и не только моей), то FIBC и OLEProvider-у время идет на пользу - они развиваются в лучшую сторону, патчи IBX явно идут в другом направлении. Интересен и тот факт, что новичок, IBObjects, к концу набора данных вырвался на 1 место.
Память Delphi
Представлено на рис 3.Коротко: IBX - изменения не видны невооруженным взглядом. FIBC - более 1/5 памяти сэкономлено, BDE, OLEProvider - а их и не должно быть :), новичок - самый не требовательный и опять на первом месте.
Память процесса.
Представлено на рис 4.В принципе - все известно IBX,FIBC, IBObjects кушают только память дельфи, BDE показало что ему память тоже нужна :),OLEProvider - нетребователен как и прежде, а новичка все таки обставили в районе 20000.
Общее впечатление: BDE - "замер", IBX - баги правятся, но чего-то выдающегося не происходит исправления багов, как правило, приводят к ухудшению параметров или в лучшем случае их не меняют. FIBC - развитие заметно, к сожалению, я не слежу достаточно пристально за эволюцией этого продукта и по поводу функциональной части не могу ничего сказать. OLEProvider - на первый взгляд изменения не заметны, но версии выходят периодически и существует бесплатный вариант(4), к тому же, может быть, для того чтобы почувствовать изменения нужны другие тесты. IBObjects - показатели неплохие. Но делать еще один график с ценами продуктов мне, честно говоря, не хотелось Ж:).
Данные 5 csv файлов лежат здесь скомпилированая программа просмотра ~400Kb.
Если есть желание получить исподники программы тестирования и отображения добро пожаловать на мыло, или можете взять из предыдущей версии статьи.
Назад в будущее(что еще может быть):
Возможно в ближейшем будут другие тесты, например, Dmitry Kovalenko предлагает
сгенерить матрицу случайных переходов по датасету и посмотреть на результаты.
Хотелось проверить следующее поведение компонентов: скорость сворачивания
данных в компонент TClientDataSet. Конечно для "простого" чтения
данных гораздо быстрее, но не удобнее, использовать компоненты аналогичные
TIBSql с минимальным временем доступа и использованием памяти.
Примечания:
1. У нас новичок по просьбе зрителей
2. При тесте использовались коммерческие библиотеки
требующие наличия запущенной IDE Ж:( так что памяти осталось мало)
3. Все растет, все изменяется даже ОЗУ на компах растет
4. Как сказал автор (дословно не приведу цитату, но своими
словами): к "несчастью" бесплатная версия достаточно стабильна :)