В новой версии IBProvider устранена причина низкой производительности сборок IBProvider, откомпилированных в Visual Studio.
Теперь эти сборки начали работать в несколько раз быстрее как в однопоточных, так и в многопоточных приложениях.
Вы сами можете убедиться насколько новая версия IBProvider работает эффективнее предыдущих.
На картинке представлена диаграмма тестирования сборок в нашей тестовой системе:
В таблице приведены результаты тестирования производительности в комплексном OLE DB тесте:
| Старые версии IBProvider | Версия | Компилятор | Имя файла в дистрибутиве | Время работы в секундах |
|---|---|---|---|---|
| IBProvider 32 bit | v.3.0.0.7798 | BCB5 | _IBProvider_v3_i.dll | 118,7 сек. |
| IBProvider 32 bit | VS2008 | _IBProvider_v3_vc9_i.dll | 439 сек. | |
| IBProvider 64 bit | VS2008 | _IBProvider_v3_vc9_w64_i.dll | 377,9 сек. | |
| Новые версии IBProvider | ||||
| IBProvider 32 bit | v.3.0.0.7866 | BCB5 | _IBProvider_v3_i.dll | 115,4 сек. |
| IBProvider 32 bit | VS2008 | _IBProvider_v3_vc9_i.dll | 99 сек. | |
| IBProvider 64 bit Лидер | VS2008 | _IBProvider_v3_vc9_w64_i.dll | 85 сек. | |
| Database Server: | Firebird 2.5.0.25784 SuperServer x64 (VS2008 SP1+). Local Protocol. |
| OS version: | Windows Vista Ultimate x64 SP2+ |
| Server: | Q6600/4GB DDR3/ICH9R RAID10 x4 WD RE3 1TB |
| Test cases: | Исходные тексты тестов находятся в "TestCode\ActiveX\IBP\oledb_test" (Маска тестов - "cmd*") |
В результате нагрузочного тестирования последней версии IBProvider 3.0.0.7866, была выявлена и исправлена ошибка, связанная с пулом запросов. Ошибка проявлялась, начиная с версии IBProvider 3.0.0.7575. Всем кто использует эту версию - рекомендуем обновиться.
В некоторых особо запущенных случаях с производительностью сервера (использовалась отладочная сборка Firebird 2.5) IBProvider мог зависать при явном вызове ADODB.Connection.Close.
В дистрибутив IBProvider добавлен новый компонент «LCPI.IBP.Samples.RowCursor», который доступен как в откомпилированном виде, так и в качестве исходных кодов. Это упрощенный аналог компоненты ADODB.Recordset, но он предоставляет более быстрый доступ к данным за счет следующих функций:
Сравнительные тесты на VBScript (используется интерфейс IDispatch) показали что LCPI.IBP.Samples.RowCursor на некоторых операциях работает до 30% быстрее, чем ADODB.Recordset.
Исходный код LCPI.IBP.Samples.RowCursor доступен в дистрибутиве IBProvider: (Samples\oledb\sample_com_object)
Примеры работы с компонентом вы найдете в тестовой системе IBProvider, которая является частью дистрибутива:
Теперь в состав дистрибутива IBProvider Professional входят 2 новые оптимизированные dll:
Для их сборки вместо Free Borland C++ compiler используется современный компилятор от Visual Studio 2008 SP1+. Они заменили файлы:
В новый инсталлятор включены только оптимизированные сборки IBProvider v1 и IBProvider v2: